Gav*_*iel 0 java reflection interface class
我有一些遗留代码,如下所示:
Set<Class<? extends Foo>> classes = reflections.getSubTypesOf(Foo.class);
for (Class<? extends Foo> cl : classes) {
Foo<?, ?> foo = cl.newInstance();
// use foo
}
Run Code Online (Sandbox Code Playgroud)
我想添加另一个接口:
interface NewFoo extends Foo {...}
Run Code Online (Sandbox Code Playgroud)
但随后它尝试调用 NewFoo 上的 newInstance。目前我的解决方案是这样的:
try {
Foo<?, ?> foo = cl.newInstance();
// use foo
} catch (InstantiationException ignore) {
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更好的方法?当我手里有一个Class对象时,我能区分接口和类吗?