Java抽象类型类编译时检查

标签 java class time compilation abstract

是否可以在编译时检查 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/

相关文章:

java - Visual Studio Code Java 访问限制

java - 使用正则表达式从字符串中提取 ip 地址

java - 我无法创建 JSONObject 的实例

使用返回模板声明接口(interface)的 C++ 错误

python - 在 python 中的 __init__ 中返回 None 的错误形式

Android: getRelativeTime 示例

android - PubNub 中的聊天消息排序策略

java - 从urlconnection的输入流中读取时速度变慢(即使使用byte []和缓冲区)

javascript - 如何在 ES6 类中声明局部函数?

time - 如何从 time::strftime 打印不带前导零的日期/时间?