Java魔法值處理的四種方式
1、魔法值的定義
魔法值是 Java 中突兀出現(xiàn)在代碼中的常量
比如:
if(user.status==2){
}
這段代碼里面的2就是一個(gè)魔法值,這樣的數(shù)據(jù)會(huì)使得代碼難以理解,并且如果這個(gè)2用的地方很多,以后想要更
改也很麻煩還容易遺漏,所以就需要規(guī)范一下對(duì)魔法值的處理。
2、方法一靜態(tài)常量(不推薦)
public final static STATUS_FALSE=0; public final static STATUS_TRUE=1;
直接在類中定義一個(gè)常量,這種方法對(duì)于魔法值的使用范圍只在一個(gè)類的范圍內(nèi)的情況下比較方便,哦,對(duì)了。常
量的命名一般都是大寫。
3、方法二接口中定義
public interface UserService{
public final static STATUS_FALSE=0;
public final static STATUS_TRUE=1;
}
寫在接口中的話好處就是,繼承這個(gè)接口的實(shí)現(xiàn)類都可以使用這些常量。
4、方法三定義在實(shí)體類
public class user{
private String name;
private Integer status;
public final static STATUS_FALSE=0;
public final static STATUS_TRUE=1;
}
這樣寫是比較推薦的,你可以在任意想用的地方使用類名打點(diǎn)的方式使用這些常量。
如果要寫的常量比較多也可以
直接建一個(gè)專門用來存放靜態(tài)常量的類。
5、方法四使用枚舉類enum
枚舉類是一種比較特殊的類想了解的
可以去搜搜我這邊只舉個(gè)簡單的使用例子。
public enum CarAssetsEnum {
DELETE_FALSEE(0,"已刪除"),
DELETE_TRUE(1,"未刪除");
private final Integer value;
private final String description;
CarAssetsEnum(Integer value,String description{
this.value=value;
this.description=description;
}
public Integer value(){
return this.value;
}
public String description(){
return this.description;
}
}
在使用的時(shí)候就可以直接這樣使用
user.setStatus(CarAssetsEnum.DELETE_FALSEE.value())
6、總結(jié)
雖然使用魔法值也不會(huì)報(bào)錯(cuò),但是維護(hù)和閱讀成本過高,還是遵循規(guī)范不使用魔法值比較好(部分代碼是手敲的可能格式不太好看,大家就將就一下吧)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringSecurity根據(jù)自定義異常返回登錄錯(cuò)誤提示信息(賬戶鎖定)
本文介紹了在SpringSecurity中根據(jù)自定義異常返回登錄錯(cuò)誤提示信息的方法,特別是在賬戶鎖定時(shí),通過記錄輸錯(cuò)次數(shù)、重寫校驗(yàn)方法并拋出自定義異常,感興趣的可以了解一下2025-01-01
java遞歸菜單樹轉(zhuǎn)換成pojo對(duì)象
這篇文章介紹了java遞歸菜單樹轉(zhuǎn)換成pojo對(duì)象的具體實(shí)現(xiàn),有需要的朋友可以參考一下2013-08-08
java實(shí)現(xiàn)字符串和數(shù)字轉(zhuǎn)換工具
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)字符串和數(shù)字轉(zhuǎn)換工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
springboot用thymeleaf模板的paginate分頁完整代碼
本文根據(jù)一個(gè)簡單的user表為例,展示 springboot集成mybatis,再到前端分頁完整代碼,需要的朋友可以參考下2017-07-07
JavaWeb項(xiàng)目web.xml中出現(xiàn)Element xxx is not al
這篇文章主要介紹了JavaWeb項(xiàng)目web.xml中出現(xiàn)Element xxx is not allowed here問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
Spring中byName和byType的區(qū)別及說明
這篇文章主要介紹了Spring中byName和byType的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
使用Mybatis如何實(shí)現(xiàn)多個(gè)控制條件查詢
這篇文章主要介紹了使用Mybatis如何實(shí)現(xiàn)多個(gè)控制條件查詢,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
JVM 的 noverify 啟動(dòng)參數(shù)問題解析
這篇文章主要介紹了JVM 的 noverify 啟動(dòng)參數(shù)問題解析,從 JDK 13 開始及其后續(xù)版本中,不建議繼續(xù)使用?-Xverify:none?和-noverify?參數(shù),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05

