是否可以在编译时检查 classType 是否指向抽象类型? 可以进行运行时检查:
void foo(Class<? extends SubType> classType) {
Modifier.isAbstract(classType.getModifiers());
}
foo(AbstractType.class); // this should pass
foo(NotAbstractType.class); // this should fail
是否可以在编译时完成同样的操作?
最佳答案
您可以编写自己的 @MustBeAbstract 注释,然后编写一个注释处理器,强制任何具有该注释的类都是抽象的。
请参阅有关注释处理的问题:What is annotation processing in Java?
关于Java抽象类型类编译时检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10204650/