boolean pingOK = false;
try {
pingOK = InetAddress.getByName(ip).isReachable(200);
} catch(IOException e) {
pingOK = false;
}
这些代码可以从6行减少到1行吗?
如:
boolean pingOK = withNoException(InetAddress.getByName(ip).isReachable(200));
也许在Java 8之上有一些功能异常技巧?
还是在Java 7下有某种方法可以做到这一点?
最佳答案
您可以使自己的助手做到这一点:
static <T> T withNoException(Supplier<? extends T> supplier, T defaultValue) {
try {
return supplier.get();
} catch (Exception e) {
return defaultValue;
}
}
...
boolean pingOK = withNoException(() -> InetAddress.getByName(ip).isReachable(200), false);