为了账号安全,请及时绑定邮箱和手机立即绑定

在多个公共类之间在java中实现全局常量的最佳方法是什么?

在多个公共类之间在java中实现全局常量的最佳方法是什么?

FFIVE 2021-09-26 17:13:30
在掌握了 C++ 之后,我刚刚开始学习 Java,我想知道是否有一种方法可以让我在 C 中以相同的方式拥有全局常量,您可以拥有一个包含常量列表的头文件,您可以包含在需要使用它们的任何类文件中。现在,在我的 Java 项目中,我通过使用 Java 接口将常量定义为最终变量来实现这种效果。public interface Constants {    public int constant1 = 36;    public String projectName = "Project Name";    public float ratio = 4.716f;    // ... more parameters}要在使用它们的类文件中访问它们,我只需在类文件中使用 implements 关键字。public class Class1 implements Constants {    // Members    // ...    // Methods    // ...}并不是说这不起作用,我只是想知道这是否是获得这种效果的最佳方式。我没有接受过正式的 Java 培训,我只是从我获得的一些书籍和在线论坛中自学。我环顾四周,我没有找到关于这个特定主题的太多讨论,更多只是关于在类中声明常量,所以我只是想从一些受过正规培训的更有经验的 Java 程序员那里找出是否有更标准的/传统的方式来做到这一点。任何建议都会有所帮助,谢谢!
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

通常将常量放在与主题相关的类中作为类字段。以下是 JavaMath类和 Android 类的示例View


public final class Math {

    public static final double PI = 3.14159265358979323846;


public class View

    public static final int VISIBLE = 0x00000000;

    public static final int INVISIBLE = 0x00000004;

然后它们可以用于任何其他类名前缀或静态导入的类中


double radius = 2 * r * Math.PI;


import static android.view.View.VISIBLE;

view.setVisibility(VISIBLE);

接口常量是一种反模式,应该避免。我不是很有经验的 Java 开发人员,但到目前为止还没有看到专门用于保存常量的类(除非处理像 AndroidR类这样的资源包)。


除此之外,Java 还提供了枚举等功能。Joshua Bloch 是众多 Java 平台功能的设计者和实现者,在Effective Java 中,有Item 34 Use enums instead of int constants。所以不能在这个话题上添加新的东西。


查看完整回答
反对 回复 2021-09-26
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

创建单独的类,如下所示


public final class Constants{

    public static final int CONSTANT_1 = 36;

    public static final String PROJECT_NAME = "Project Name";

}

在代码中使用如下


 Constants.CONSTANT_1;


查看完整回答
反对 回复 2021-09-26
  • 2 回答
  • 0 关注
  • 286 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号