java 列舉使用中注意的問題

2021-09-02 16:07:58 字數 1189 閱讀 7523

通常在需要使用資料集合的時候,列舉便派上了用場。大多數情況下使用列舉的時候無意識的不會去修改裡面的值。那麼列舉中的值到底能不能修改呢? 答案是:一旦定義了列舉,最好不要妄圖修改裡面的值,除非修改是必要的。

今天遇到的問題就是和列舉相關的,因為之前並不知道枚的物件實際上是單例,導致了非常嚴重的問題

先看下**

(1)定義的列舉:

public enum  squareareaenum {

carousel(new squareareatemplate(1, "", false),

"carousel", i),

icon(new squareareatemplate(2, "", false,i),

"fullscale"),//使用者定製部分

head_line(new squareareatemplate(3, "", false),

"headline",i),

這個列舉中的squareareatemplate物件中有乙個order屬性,需要動態的獲取

所以我便幹了這樣一件事:

(2)通過外部方法修改order值

public class squareconfig {

public static listgetbyidentity(ii ){

listsquares = lists.newarraylist();

for(squareareaenum squareareaenum : squareareaenum.values()){

if(i.both.equals(squareareaenum..geti())){

squares.add(squareareaenum);

//排序

int index = 0;

for(squareareaenum squareareaenum : squares){

squareareaenum.getsquareareatemplate().setorder(++index);

return squares;

那麼問題來了,在測試的時候,order的值都是順序拿到的,但是到了生產環境下,order就亂了。

問題的原因就在於,測試環境中只有一台伺服器,一旦列舉被初始化以後任何時候去獲取它都是固定的,但是生產環境下有多台伺服器,拿到的不知道那台伺服器上的值了。

java面試中注意的問題01

public class rigorous 答 在這道題中,很多初學者會毫不猶豫寫上 0.7 但結果卻是 0.699999999993 這結果出乎意料,想要得到正確的結果可先將浮點型別裝換成整型計算後,再講整形轉換成浮點型 public class switchlong public class i...

gitignore 使用中注意的問題

在git中如果想忽略掉某個檔案,不讓這個檔案提交到版本庫中,可以使用修改 gitignore 檔案的方法。這個檔案每一行儲存了乙個匹配的規則例如 此為注釋 將被 git 忽略 a 忽略所有 a 結尾的檔案 lib.a 但 lib.a 除外 todo 僅僅忽略專案根目錄下的 todo 檔案,不包括 s...

紅包秒殺中注意的問題

字段設計使用無符號 更新時使用樂觀鎖 update red goods set remain quantity case case value when remain quantity 扣減數量或者金額 then remain quantity 扣減的數量或者金額 else remain quant...