通常在需要使用資料集合的時候,列舉便派上了用場。大多數情況下使用列舉的時候無意識的不會去修改裡面的值。那麼列舉中的值到底能不能修改呢? 答案是:一旦定義了列舉,最好不要妄圖修改裡面的值,除非修改是必要的。
今天遇到的問題就是和列舉相關的,因為之前並不知道枚的物件實際上是單例,導致了非常嚴重的問題
先看下**
(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...