在另一个班级中访问公共最终常量?

时间:2015-10-11 04:20:10

标签: java oop object constants

我正在尝试访问存储在“Constants.java”(私有类)中的java中的常量,并在另一个中使用它来在方法中对其进行评估。

我不允许更改Constants类,并且我尝试访问的常量按以下方式初始化:

xs

我尝试了以下内容:

 public final int INVENTORY_MAX = 100;

但是Constants是私有的,没有它,它要求我创建一个局部变量。我也会将变量设为静态,但代码由教授给出,我不能以任何方式改变它。请帮忙!

谢谢。

编辑:以下是一个截图,显示Constants类是私有的。忽略常量下的错误消息。

Class Constructor

Constants

2 个答案:

答案 0 :(得分:5)

修改 它并不是说类是私有的,而是说构造函数是私有的。这意味着您无法在其外部创建类的实例。

所以你要做到以下几点:

Constants consts = Constants.getInstance();
if (h <= consts.INVENTORY_MAX)

答案 1 :(得分:2)

  
    

我愿意,但是如果我的教授给出的Constants类不允许&gt;我更改Constants类。

  
     

在他的代码中也有这种方法可能有用:

public static Constants getInstance() {
     if(instance == null)
         instance = new Constants();
     return instance;
}
     

根据您的修改ConstantsSingleton,所以首先获取实例,然后直接访问该字段。

INVENTORY_MAX = 100;
Constants consts = Constants.getInstance(); // new Constants();
// ...
if (h <= consts.INVENTORY_MAX)