【发布时间】:2019-06-22 07:01:30
【问题描述】:
我有一门课是这样的
class Some {
private enum Inner {
}
}
我正试图在我的测试类的初始化块中找到 Inner 类。
class SomeTest {
private static final Class<?> INNER_CLASS;
{
for (final Class<?> declaredClass: Some.class.getDeclaredClasses()) {
if (declaredClass.getSimpleName().equals("Inner")) {
INNER_CLASS = declaredClass;
// Variable `INNER_CLASS` might be assigned in loop
// break? return?
}
}
throw new ExceptionInitializerError("failed to find Inner.class");
}
}
编译器不喜欢这样,我找不到更好的方法。
我该如何解决这个问题?这有什么好的模式吗?
【问题讨论】:
-
编译器对此有何不满意?我没有看到 return 声明,这意味着您的
ExceptionInitializerError将始终被抛出。 -
不应该是静态初始化块吗?