JAVA中的常量定义在class中还是interface中比较合理?

本文作者:苏生米沿

java中使用的常量可以集中定义在一个文件中。
有两种解决方案:
1.在Constants.java中定义,每个都要加上 public static final String…
2.直接在接口中定义: static String…

用法都一样,在使用的时候引入这个类(接口),使用即可。

存在区别:
1.类中定义的话,支持动态编译,即修改类之后,只需要替换这一个类文件,即可实现修改的变化。接口中则不行,需要重新编译所有项目再重新启动才好。
2.接口中定义的话,代码量比较少。

我一般会考虑在接口中,有修改的话,全部编译再替换就是。

时间: 2024-12-01 17:13:16

JAVA中的常量定义在class中还是interface中比较合理?的相关文章

PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)_php技巧

为什么要谨慎使用PHP中的常量? Zend Framework文档中写道:常量包含数字字母字符和下划线,数字允许作为常量名. 常量名的所有字母必须大写.类常量必须通过 "const" 定义为类的成员,强烈不鼓励使用 "define" 定义的全局常量. 作为PHP的官方框架,为什么会有这样的要求? 让我们一起分析一下吧. 1. define容易产生意想不到的错误 PHP常量是定义后就不能修改和再次赋值.但是如果再次赋值会怎么样? <?php define('C'

Java中的常量:如何避免反模式

在应用中,我们往往需要一个常量文件,用于存储被多个地方引用的共享常量.在设计应用时,我也遇到了类似的情况,很多地方都需要各种各样的常量. 我确定需要一个单独的文件来存储这些静态公共常量.但是我不是特别确定是应该用接口还是类(枚举不满足我的需求).我有两种选择: 使用接口,如: package one; public interface Constants { String NAME="name1"; int MAX_VAL=25; } 或 package two; public cla

java怎样用常量接收集合中的信息?

问题描述 java怎样用常量接收集合中的信息? java怎样用常量接收集合中的信息?需求是:用for循环将座位牌号以"1-1"的形式输出,将这些信息放到集合中,选择座位牌号的时候判断有没有这个座位<<< 解决方案 首先向list中放值 /*** 将座位号放入ArrayList中* @param row 座位的行数* @param colu 座位的列数* @return 设置好数据的List */ public List setList(int row int colu

java中的常量为什么不能在try catch语句中赋值?

问题描述 java中的常量为什么不能在try catch语句中赋值? 成员位置声明一个常量,想在try catch 语句中赋值,会报错,不明白为什么会这样 解决方案 常量可以在try catch中赋值的,try这种就相当于一个语句块,只是提供了对异常的处理而已. 解决方案二: try-catch语句try-catch语句匿名类,try-catch语句 解决方案三: java中的常量声明时就需要初始化赋值.常量是始终不变的量,不能改变其常量值 解决方案四: 声明常量时就需要初始化赋值,不然会报错:

Java中的常量避免反模式的方法_java

在应用中,我们往往需要一个常量文件,用于存储被多个地方引用的共享常量.在设计应用时,我也遇到了类似的情况,很多地方都需要各种各样的常量. 我确定需要一个单独的文件来存储这些静态公共常量.但是我不是特别确定是应该用接口还是类(枚举不满足我的需求).我有两种选择: 使用接口,如: package one; public interface Constants { String NAME="name1"; int MAX_VAL=25; } 或 package two; public cla

java-Java中静态常量可以被覆写吗?

问题描述 Java中静态常量可以被覆写吗? Java中静态常量可以被覆写吗?在一个类中定义一个静态常量,它的子类类中定义一个同名的静态常量,这样可以吗? 解决方案 子类可以定义与父类同名的静态常量的,但是各是各的,没有关联的. 解决方案二: 你说的复写是什么意思.首先,静态成员根本就没有继承的概念,所以不存在复写(override) 解决方案三: 因为静态成员通过类名访问,你不能通过派生类得到基类定义的静态成员,反之也是,所以根本不存在什么复写不复写.用什么类名访问的就是什么. 解决方案四: 如

java中++a和a++ 在数组实现栈中的小疑问

问题描述 java中++a和a++ 在数组实现栈中的小疑问 package 数组实现栈; public class StackArray implements Stack { public static final int num = 1024;//数组默认容量 public int capacity;//数组实际容量 public Object s[];//对象数组 public int top = -1;//栈顶元素位置 //构建默认容量栈对象 public StackArray() { t

Java异常处理--尽量不要从try区段中返回(return)

异常处理 Java异常处理模型与其他语言相比,关键词finally是最出色的新增特性了.finally构件使得该区段中的代码总是得以执行,而无论是否发生异常,特别适用于维护对象的内部状态(用来保证异常发生恢复对象的有效状态,以确保程序能在处理完异常后自动再次投入运行)和清理non-memory资源(垃圾回收机制无法处理的资源,如数据库连接.Socket等等).         但有一点值得注意,那就是尽量不要从try区段中返回(调用return),因为只要有finally区段存在,它就一定会被执

C/C++中字符串常量的不相等性及字符串的Copy

#include <iostream> void main(void){ if("test"=="test") { cout<<"相等"; } else { cout<<"不相等"; }} 上面的代码我们测试两个内容为test的字符串常量是否相等,按照常理,应该是相等的,这些在一些过程式语言中会得到相等的结论,但在c/c++却不是这样. 为什么呢? 答案在这里:因为字符串常量存储在计算机内存