【问题标题】:Accessing a public final constant in another class?访问另一个类中的公共最终常量?
【发布时间】:2016-01-08 18:31:55
【问题描述】:

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

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

 public final int INVENTORY_MAX = 100;

我尝试了以下方法:

 if (h <= Constants.INVENTORY_MAX)

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

谢谢。

编辑:以下是显示常量类是私有的屏幕截图。忽略常量下的错误信息。

Class Constructor

Constants

【问题讨论】:

    标签: java oop object constants


    【解决方案1】:

    编辑: 它不是说类是私有的,而是说构造函数是私有的。这意味着你不能在它之外创建类的实例。

    所以你执行以下操作:

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

    【讨论】:

    • 我愿意,但是如果我的教授给出的常量类不允许我更改常量类。
    【解决方案2】:

    我愿意,但是如果我的教授给出的常量类不允许>我更改常量类。

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

    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)
    

    【讨论】:

    • 谢谢!完美解决我的问题。
    猜你喜欢
    • 1970-01-01
    • 2018-12-16
    • 2020-11-17
    • 2013-03-25
    • 2014-03-22
    • 1970-01-01
    • 2014-09-05
    • 2013-02-01
    • 1970-01-01
    相关资源
    最近更新 更多