Java 如何使一个包中的所有类共用一个常量变量?

Java 如何使一个包中的所有类共用一个常量变量?,java,Java,我希望一个常量变量对包中的所有类都通用。有没有一种方法可以做到这一点,而不必只使用一个定义创建一个接口,并让每个类都实现它?对我来说,似乎是一个很好的属性文件条目候选项。您可以使用一个抽象类作为该包中每个impl的基类。在Java中,所有常量都必须驻留在类型(类或接口)中。但是您不必实现一个接口来使用内部声明的常量 您可以尝试在软件包中放入类似的内容: interface Constants { static final String CONSTANT = "CONTANT"; }

我希望一个常量变量对包中的所有类都通用。有没有一种方法可以做到这一点,而不必只使用一个定义创建一个接口,并让每个类都实现它?

对我来说,似乎是一个很好的属性文件条目候选项。

您可以使用一个抽象类作为该包中每个impl的基类。

在Java中,所有常量都必须驻留在类型(类或接口)中。但是您不必实现一个接口来使用内部声明的常量

您可以尝试在软件包中放入类似的内容:

interface Constants {

    static final String CONSTANT = "CONTANT";

}
然后,像这样使用它:

String myVar = Constants.CONSTANT;

这样,您仍然有接口,但没有类实现它。

您可以用这个变量创建一个特殊的(静态)类。以后,您可以向该类添加其他常量或任何您需要的内容。

通常,应用程序有一个保存所有常量的“常量”类或接口

我通常将常量分组到逻辑类中。例如,如果可以有两种员工,常规员工和合同员工:

class EmployeeType
{
   public static final String REGULAR = "regular";
   public static final String CONTRACT = "contract";
}
并将其用作
EmployeeType.REGULAR

如果不能以这种方式对常量进行分组,请使用单独的类/接口来保存这些常量

class Constants
{
   public static final String APPLICATION_DOMAIN = 'domain';
}

使用这些值不需要扩展/实现此类接口。常量通常会声明为
公共静态最终版
,您可以直接访问它们:
常量。应用程序\u域
使用包私有类:

class Constants{

    public static final int MY_VALUE = 1234;

}
这只能由同一包中的类访问:

int val = Constants.MY_VALUE;

您可以通过多种方式执行此操作:

  • 一种方法(如本文所述)是创建一个全局常量接口,并具有每个常量的
    公共静态final
    属性`
  • 创建属性文件。通过拥有一个属性文件,您将拥有一个键值对(由
    =
    运算符分隔),每个键值对在换行符上声明。下面介绍如何创建和使用属性文件

接口主体中的每个字段声明都是隐式公开、静态和最终的。有效的Java,第19项“仅使用接口定义类型”明确建议不要使用这种接口。如果需要,请将类用于常量或枚举possible@seanizer,你能给我发一份pdf吗?我的邮箱id和我的个人资料都在那里。@olj对不起,没有pdf版本。但有时你可以通过谷歌在线找到一本书,不过你应该得到这本书。“这钱很值。”西尼尔:我已经下载了。谢谢