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

oad*_*ams 7 java

我希望一个常量变量对于包中的所有类是通用的.有没有办法我可以做到这一点,而不是只使用其中的一个定义接口,并使每个类实现它?

Viv*_*sse 9

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

你可以尝试在你的包中加入这样的东西:

interface Constants {

    static final String CONSTANT = "CONTANT";

}
Run Code Online (Sandbox Code Playgroud)

然后,像这样使用它:

String myVar = Constants.CONSTANT;
Run Code Online (Sandbox Code Playgroud)

这样,你仍然有你的界面,但没有类实现它.

  • 有效的Java,第19项"仅使用接口来定义类型"明确建议不要使用这种接口.如果可能,请使用常量或枚举类 (8认同)

Niv*_*vas 5

通常,应用程序具有"常量"类或包含所有常量的接口.

我通常将常量分组为逻辑类.例如,如果有两种员工,常规和合同:

class EmployeeType
{
   public static final String REGULAR = "regular";
   public static final String CONTRACT = "contract";
}
Run Code Online (Sandbox Code Playgroud)

并用它作为 EmployeeType.REGULAR

如果常量不能以这种方式分组,请使用单独的类/接口来保存它们.

class Constants
{
   public static final String APPLICATION_DOMAIN = 'domain';
}
Run Code Online (Sandbox Code Playgroud)

您无需扩展/实现此类接口即可使用这些值.通常会声明常量public static final,您可以直接访问它们:Constants.APPLICATION_DOMAIN