Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于在核心java项目中定义常量的单独接口或实用程序类_Java - Fatal编程技术网

用于在核心java项目中定义常量的单独接口或实用程序类

用于在核心java项目中定义常量的单独接口或实用程序类,java,Java,我正在做一个项目(使用JDK7),它有30到40个常量。我的项目的许多类都在使用这些常量。我想把这些常量分离成一个文件。我应该选择哪种类型的文件?、接口还是实用程序类,我正在考虑使用接口。是否合适?根据SonarQube规则 您应该使用类或枚举。根据SonarQube规则 您应该使用类或枚举。在这种情况下,我使用带有私有构造函数的类 但请注意,如果常量之间存在概念上的联系,则只应将它们放在一个文件中。不要简单地在类中存储一堆不相关的常量 如果常数可能会随着时间的推移而改变,因为它们更多的是配

我正在做一个项目(使用JDK7),它有30到40个常量。我的项目的许多类都在使用这些常量。我想把这些常量分离成一个文件。我应该选择哪种类型的文件?、接口还是实用程序类,我正在考虑使用接口。是否合适?

根据SonarQube规则


您应该使用类或枚举。

根据SonarQube规则


您应该使用类或枚举。

在这种情况下,我使用带有私有构造函数的类

但请注意,如果常量之间存在概念上的联系,则只应将它们放在一个文件中。不要简单地在类中存储一堆不相关的常量


如果常数可能会随着时间的推移而改变,因为它们更多的是配置类型,我会加倍努力将它们存储在配置文件中。

在这种情况下,我使用带有私有构造函数的类

但请注意,如果常量之间存在概念上的联系,则只应将它们放在一个文件中。不要简单地在类中存储一堆不相关的常量

如果常数可能会随着时间的推移而改变,因为它们更多的是配置类型,我会加倍努力将它们存储在配置文件中。

我就是这样做的

class Constants {

private Constants() {

}

public static final String CONST_1 = "";
//add your constants here as public static final properties

}
我是这样做的

class Constants {

private Constants() {

}

public static final String CONST_1 = "";
//add your constants here as public static final properties

}

不,这将是最好的选择。不要滥用继承来保存几行代码。使用
枚举
属性
文件。最好是文件。我会使用一个外部化的
*.properties
文件和一个资源类来读取它并向其他类公开。这些常量通常不是真正的常量,因此最好将它们放在一个属性文件中,该文件无需重新编译项目本身即可进行编辑。对于真正的常量,请使用
enum
sThanks接受我的答案。但是,如果您有可能更改的“常量”,并且如果您只更改值,您的所有代码都会工作,那么属性文件确实是最好的解决方案。@Rainer在我的项目中常量不会更改,这就是为什么我不考虑使用属性文件的原因。我被一个带有私有构造函数的类和一个接口弄糊涂了。但是现在在阅读了所有的评论和答案之后。我确信我应该避免使用常量接口。所以我会坚持使用枚举或类。这将是最好的选择。不要滥用继承来保存几行代码。使用
枚举
属性
文件。最好是文件。我会使用一个外部化的
*.properties
文件和一个资源类来读取它并向其他类公开。这些常量通常不是真正的常量,因此最好将它们放在一个属性文件中,该文件无需重新编译项目本身即可进行编辑。对于真正的常量,请使用
enum
sThanks接受我的答案。但是,如果您有可能更改的“常量”,并且如果您只更改值,您的所有代码都会工作,那么属性文件确实是最好的解决方案。@Rainer在我的项目中常量不会更改,这就是为什么我不考虑使用属性文件的原因。我被一个带有私有构造函数的类和一个接口弄糊涂了。但是现在在阅读了所有的评论和答案之后。我确信我应该避免使用常量接口。所以我将坚持使用enum或类。