gpt4 book ai didi

java - 传递对方法的引用而不是值(或类似的东西)-JAVA

转载 作者:行者123 更新时间:2023-11-29 04:06:47 25 4
gpt4 key购买 nike

我有多个对象,其值存储在 -

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

有可能,那个列表是空的,所以-

object.getList().get(0)

抛出一个 NPE

我想通过-

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
}
}

提前致谢!

最佳答案

您可以使用功能接口(interface),例如 Supplier和一个 lambda

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

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

如果你想支持任何异常,你需要定义你自己的功能接口(interface),例如

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

关于java - 传递对方法的引用而不是值(或类似的东西)-JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58097813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com