详解Java常量类(OrderConstants)
package xxx.orderin; public class OrderConstants { // 防止实例化 private OrderConstants() { throw new UnsupportedOperationException("This is a utility class and cannot be instantiated"); } //发送方业务类型 : xxx业务 public static final String SEND_XXX_MFOR = "MFXX"; //系统外部 API导入 public static final String EX_ORDER_TYPE_AXX_XXX_IMPORT = "10"; }
定义了一个公共类OrderConstants。
private OrderConstants() { throw new UnsupportedOperationException("This is a utility class and cannot be instantiated"); }
- 私有构造方法,阻止外部实例化该类。
- 抛出异常说明这个类纯粹是工具类(只用于存放静态常量,不希望被创建对象)
接下来的都是public static final常量,比如:
public static final String SEND_BIZ_MFOR = "MFOR"; public static final String EB_ORDER_TYPE_API_OMS_IMPORT = "10";
这代表:
- public:其他类可以访问。
- static:属于类本身,而不是实例。
- final:常量,值不能修改。
❓那为什么在IDEA中这个类的图标不是蓝色的C,而是绿色的@?
这其实是IDEA对常量类的特殊识别行为。
✅ 原因:
在IntelliJ IDEA中,如果一个类:
- 只包含 public static final 常量,没有其他逻辑;
- 并且有 私有构造函数防止实例化;
- 那么 IDEA 会识别它是一个 “常量工具类”;
➡️ IDEA会用绿色的@图标来显示它,这是一种语义化提示,表示这是一个"纯粹的常量类",不是普通的Java类。