在Java中内联对类名的引用

时间:2014-05-25 06:03:26

标签: java compilation classname

让我们考虑以下声明:

final String s = mypackage.X.class.getName();

这将导致在运行时加载类" mypackage.X"

我正在寻找一种阻止加载这个类的替代机制(例如在编译时将类内联起来)。

注意,在源代码级别用字符串文字替换整个语句的简单方法对我想要实现的目标不起作用。

final String s = "mypackage.X";

谢谢,

1 个答案:

答案 0 :(得分:0)

如果您/确实/需要避免默认类加载器自动加载类(例如,当用户类加载器到位时),我建议使用代码生成。

JCodeModel和您在实际应用程序源中引用的创建public static final String字段的自定义生成器的组合似乎已足够。

将代码生成作为generate-sources maven lifecycle的一部分运行,可确保您的引用保持最新。