我有两种选择:

第一:采用Singleton设计模式

public class A{
   private static A instance;
   private A(){};
   public A getDefault(){
   if(instance == null)
      instance = new A();
   return instance;
   }
//cst
public static final String cst = "sample";
}


这样,我们可以通过cst访问A.getDefault().cst

第二:参考课堂

public class B{
   public static final String cst = "sample";
}


这样,我们就可以通过cst轻松访问B.cst

考虑性能的最佳方法是什么(对我而言,常数已编号并具有图像类型)?

最佳答案

第二种选择(普通的公共最终静态字段)更简单,而且更有可能更有效率。

如果您发现自己需要一个更灵活的解决方案,我建议您创建一个枚举来保留您的价值观。

public enum MyConstants {
    CST1(new Image("someImage.jpg")),
    CST2(new Image("someOtherImage.jpg"));

    public final Image img;

    private MyConstants(Image img) {
        this.img = img;
    }
}


请注意,静态字段和枚举解决方案都可以与静态导入配合使用:

import static pkg.B.cst;           // usage:  cst


要么

import static pkg.MyConstants.*;   // usage:  CST1  or  CST2

10-06 11:25