gpt4 book ai didi

java - try/catch 的风格要点

转载 作者:行者123 更新时间:2023-12-01 15:29:05 24 4
gpt4 key购买 nike

我想知道这种方法是否正确:

public ITask getState()
{
statePredicate[Some predicate definition];
ITask nextRunnable = null;
try {
nextRunnable = Iterables.find((Iterable)queue, statePredicate);
}
catch (NoSuchElementException e)
{}
return nextRunnable;
}

我想知道的要点是:

  • 是否应该将谓词缓存为类的成员?
  • 我对捕获没有做任何事情,我什至没有记录它,因为它是我的应用找不到任何东西是正常的。
  • 不会返回 null,因为我执行了最终返回。

感谢您的投入! -

最佳答案

1) 如果谓词始终相同,我会将其设为 static final 类成员。

2) 还有一个 Iterables.find 版本,您可以为其指定默认值(假设您使用的是 Google Guava)。那么您根本不需要处理 NoSuchElementException

3) 是否有理由将 queue 转换为 Iterable?如果没有必要,请不要转换。

class MyClass {
private static final Predicate STATE_PREDICATE = new Predicate<ITask>() {
@Override
public boolean apply(ITask input) {
// ... your code here
}
};

public ITask getState() {
return Iterables.find(queue, STATE_PREDICATE, null);
}
}

关于java - try/catch 的风格要点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9785143/

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