java中常量的设置(Constant)

时间:2024-10-19 07:16:40

第一种:接口方式

public interface WeekInterface {

    String SUNDAY = "SUNDAY";
    String MONDAY = "MONDAY";
    String TUESDAY = "TUESDAY";
    String WEDNESDAY = "WEDNESDAY";
    String THURSDAY = "THURSDAY";
    String FRIDAY = "FRIDAY";
    String SATURDAY = "SATURDAY";

}
接口的参数,默认是public static final类型的,使用方式


第二种:定义public final型的静态变量 public static final

public class Weeks {

    public static final String SUNDAY = "SUNDAY";
    public static final String MONDAY = "MONDAY";
    public static final String TUESDAY = "TUESDAY";
    public static final String WEDNESDAY = "WEDNESDAY";
    public static final String THURSDAY = "THURSDAY";
    public static final String FRIDAY = "FRIDAY";
    public static final String SATURDAY = "SATURDAY";
    
}


第三种:定义private final静态变量,使用get 方法调用

public class WeeksConstant {

    private static final String SUNDAY = "SUNDAY";
    private static final String MONDAY = "MONDAY";
    private static final String TUESDAY = "TUESDAY";
    private static final String WEDNESDAY = "WEDNESDAY";
    private static final String THURSDAY = "THURSDAY";
    private static final String FRIDAY = "FRIDAY";
    private static final String SATURDAY = "SATURDAY";

    public static String getSUNDAY() {
        return SUNDAY;
    }

    public static String getSATURDAY() {
        return SATURDAY;
    }

    public static String getFRIDAY() {
        return FRIDAY;
    }

    public static String getTHURSDAY() {
        return THURSDAY;
    }

    public static String getWEDNESDAY() {
        return WEDNESDAY;
    }

    public static String getTUESDAY() {
        return TUESDAY;
    }

    public static String getMONDAY() {
        return MONDAY;
    }
}

第四种:使用enum类型的类

enum WeekEnum {  
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY  
}  

第五种:实用配置文件,在 .properties 中配置一些配置型参数


第一种使用接口,接口的参数类型默认是static final型的,就可以通过接口直接调用,看似确实是个不错的方法。但我们该想想接口的使用场景,通常是为了定义一组行为,为接口的实现类定义行为约束,如果我们确定定义的参数不可改变,可以添加参数,但不能把接口作为我们定义静态常量的工具。所以不推荐单独拿来定义常量。

第二种直接定义public static final 直观明了,是大多数人能很快想到的,估计也是大多数人正在用的。

第二种可以通过构造方法进行改造,把每一个类作为静态变量,类中的提供不止一个参数。举例如下:

public class ResultCode {

    public String code;
    public String message;

    private ResultCode(String code,String message){
         = code;
         = message;
    }

    public static final ResultCode SUCCESS = new ResultCode("S00000", "成功");
    public static final ResultCode SYSTEM_ERROR = new ResultCode("E00001","系统错误");

}


第三种方法和第二种类似,只是通过方法取值。

第四种方法,使用枚举类型,适用于一类的固定结果的,通常是数据库的某个字段对应的几个具体结果。下拉框选项通常用枚举类实现,极力推荐这种方式。枚举也可以通过构造方法实现类似上面的多个参数。更多关于枚举的使用参考另一篇博客

第五红,说的更准确些应该叫配置信息,比如数据库的配置信息、数据库连接池等各种配置信息,用properties文件更易于理解。


以上是本人对于java中静态常量的理解,希望读者能给出好的意见、补充。