Java 静态最终版本';s和多类加载器
我有这样的定义Java 静态最终版本';s和多类加载器,java,static,classloader,final,Java,Static,Classloader,Final,我有这样的定义 public static final Object foo = Xyz.generateFoo(); 我的应用程序使用多个自定义类装入器。如何确保所有类都能看到相同的foo 最好不使用外部存储(即System.Properties或文件)。谢谢。在由公共父类加载器加载的类中放置一个对值的引用。是希望返回此Xyz.generateFoo()始终保持不变,或在分配给变量后保持不变公共静态最终对象foo=Xyz.generateFoo()您希望随时随地访问同一实例。请注意,如果某
public static final Object foo = Xyz.generateFoo();
我的应用程序使用多个自定义类装入器。如何确保所有类都能看到相同的foo
最好不使用外部存储(即System.Properties或文件)。谢谢。在由公共父类加载器加载的类中放置一个对值的引用。是希望返回此
Xyz.generateFoo()
始终保持不变,或在分配给变量后保持不变公共静态最终对象foo=Xyz.generateFoo()
您希望随时随地访问同一实例。请注意,如果某些自定义类加载器违反了“先检查父类加载器”规则(例如,像webapp类加载器那样),则无法确保它
否则,您可以按照Tom Hawtin的建议,将该字段放在父类加载器加载的类中。将日期存储在文件中不会以任何方式保证相同的foo实例。此外,类加载器通常具有树结构,父类加载器加载的任何内容都是相同的。