【发布时间】:2011-01-28 16:15:38
【问题描述】:
有没有办法强制 Java 中的类具有公共静态最终字段(通过接口或抽象类)?或者至少只是一个公共领域?
我需要以某种方式确保一组类具有
public static final String TYPE = "...";
在其中。
【问题讨论】:
-
你想做什么?你正在做一些使用反射的事情,对吧?否则你不会有问题(如果该字段被
MyClass.field引用但不存在它不会编译,因此它被隐式强制执行,或者在这种情况下你不关心该字段未引用)跨度> -
你可能想考虑一个工厂或类似的。
-
@Tom 为什么要使用映射 Class -> TYPE ?只需使用类的完全限定名称即可。
-
公共字段不好......如果有人依赖它们,并且有一天你更改了字段,客户端代码就会中断
-
@Helper 客户端代码仅在
static final字段使用 编译时间常量 (如 JLS 定义 - 本质上是原始字符串、文字、运算符)初始化时复制值,没有方法调用,没有空值)。
标签: java class inheritance