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