工具类--常量类

 共有四种方式:

 1 /**
 2  * Method One
 3  * 定义接口类,采用接口(Interface)的中变量默认为static final的特性。
 4  */
 5 interface ConstantInterface {
 6     String SUNDAY = "SUNDAY";
 7     String MONDAY = "MONDAY";
 8     String TUESDAY = "TUESDAY";
 9     String WEDNESDAY = "WEDNESDAY";
10     String THURSDAY = "THURSDAY";
11     String FRIDAY = "FRIDAY";
12     String SATURDAY = "SATURDAY";
13 }
14 /**
15  * Method Two
16  * 定义枚举
17  */
18 enum ConstantEnum {
19     SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
20 }
21 /**
22  * Method Three
23  * 定义常量类
24  */
25 class ConstantClassField {
26     public static final String SUNDAY = "SUNDAY";
27     public static final String MONDAY = "MONDAY";
28     public static final String TUESDAY = "TUESDAY";
29     public static final String WEDNESDAY = "WEDNESDAY";
30     public static final String THURSDAY = "THURSDAY";
31     public static final String FRIDAY = "FRIDAY";
32     public static final String SATURDAY = "SATURDAY";
33 }
34 /**
35  * Method Four
36  * 定义bean
37  */
38 class ConstantClassFunction {
39     private static final String SUNDAY = "SUNDAY";
40     private static final String MONDAY = "MONDAY";
41     private static final String TUESDAY = "TUESDAY";
42     private static final String WEDNESDAY = "WEDNESDAY";
43     private static final String THURSDAY = "THURSDAY";
44     private static final String FRIDAY = "FRIDAY";
45     private static final String SATURDAY = "SATURDAY";
46     public static String getSunday() {
47         return SUNDAY;
48     }
49     public static String getMonday() {
50         return MONDAY;
51     }
52     public static String getTuesday() {
53         return TUESDAY;
54     }
55     public static String getWednesday() {
56         return WEDNESDAY;
57     }
58     public static String getThursday() {
59         return THURSDAY;
60     }
61     public static String getFirday() {
62         return FRIDAY;
63     }
64     public static String getSaturday() {
65         return SATURDAY;
66     }
67 }
68 
69 /**
70  * 测试代码
71  * */
72 class TestConstant {
73     static final String day = "saturday";
74     public static void main(String[] args) {
75         System.out.println("Is today Saturday?");
76         System.out.println(day.equalsIgnoreCase(ConstantInterface.SATURDAY));
77         System.out.println(day.equalsIgnoreCase(ConstantEnum.SATURDAY.name()));
78         System.out.println(day.equalsIgnoreCase(ConstantClassField.SATURDAY));
79         System.out.println(day.equalsIgnoreCase(ConstantClassFunction.getSaturday()));
80     }
81 }

方法一采用接口(Interface)的中变量默认为static final的特性。

方法二采用了Java 5.0中引入的Enum(枚举)类型。

方法三采用了在普通类中使用static final修饰变量的方法。

方法四类似方法三,但是通过函数来获取常量,类似bean,也就是有自带的get方法。

使用常量类原因:

定义全局变量会增加程序耦合成都。最佳的方法是避免定义全局变量。如果是参数等,可以写入配置文件,否则方法二是最为推荐。方法三是比较直观。方法一和方法三本质上一样。方法四提供了灵活性。

原文地址:https://www.cnblogs.com/silence-fire/p/6825022.html