代わりに、値(またはそのような何か)のメソッドへの参照を渡す - JAVAを

およびPabo:

私は中に格納された値を持つ複数のオブジェクトを持っています -

object.getList().get(0).getSomeObject.getName(0)

これは、リストが空SO-であることを、可能です

object.getList().get(0)

NPEをスローします

私はpass-したいです

object.getList().get(0).getSomeObject.getName()

別の方法にして、そこに例外を処理します。

例えば:

// calling the method
myMethod(object.getList().get(0).getSomeObject.getName());

public void myMethod(Object o){
    try {
        String name = o;
    }catch (Exception e){
        // do something
    }
}

そのような何かを行うことが可能です -

EvaluateLaterObject elo = new EvaluateLaterObject(object.getList().get(0).getSomeObject.getName());
myMethod(elo);

public void myMethod(EvaluateLaterObject elo){
    try {
        String name = elo.getValue();
    }catch (Exception e){
        // do something
    }
}

前もって感謝します!

マイケル:

次のような機能的なインターフェースを使用することができますSupplierし、ラムダ

myMethod(() -> object.getList().get(0).getSomeObject.getName());

public void myMethod(Supplier<String>){
    try {
        String name = elo.get();
    }catch (Exception e){
        // do something
    }
}

あなたが任意の例外をサポートしたい場合は、独自の機能インタフェースなどを定義する必要があります

@FunctionalInterface
interface ThrowableSupplier<T>
{
    T get() throws Throwable;
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=333219&siteId=1