static 塊的定義與使用範例

2021-06-20 15:30:28 字數 2099 閱讀 4595

下面通過乙個例項來介紹如何使用 static 塊來優化**。該**冗餘部分用綠色標出,該函式被呼叫四次。

public static final string mood_image_key_pre = "pref_camera_water_mark_mood_image_key_";

public static final string mood_image_key_pre_ex = "pref_camera_water_mark_mood_image_key_ex_";

public void onitemclick(adapterview<?> parent, view v, int position, long id) else

watermarkmoodimageactivity.this.finish();

}private int getimagebackgroundidfrompreference(int position) else

int index = imagepreference.findindexofvalue(imagepreference.getvalue());

int imagebackgroundid = imagepreference.getimageidsbackground();

if (imagebackgroundid == null)

return imagebackgroundid[index];

}private int getimageaddon1idfrompreference(int position) else

int index = imagepreference.findindexofvalue(imagepreference.getvalue());

int imageaddon1id = imagepreference.getimageidsaddon1();

if (imageaddon1id == null)

return imageaddon1id[index];

}private int getimageaddon2idfrompreference(int position) else

int index = imagepreference.findindexofvalue(imagepreference.getvalue());

int imageaddon2id = imagepreference.getimageidsaddon2();

if (imageaddon2id == null)

return imageaddon2id[index];

}

之前的**如上面所示。之所以這樣做是因為要對乙個功能根據專案作一些區別。但上面的**的冗餘主要體現在每次呼叫 mood_image_key_pre 時均要作出判斷。下面請看優化之後的**:(綠色部分只呼叫一次)

public static final string mood_image_key_pre;// = "pref_camera_water_mark_mood_image_key_";

static else

}public void onitemclick(adapterview<?> parent, view v, int position, long id)

private int getimagebackgroundidfrompreference(int position)

return imagebackgroundid[index];

}private int getimageaddon1idfrompreference(int position)

return imageaddon1id[index];

}private int getimageaddon2idfrompreference(int position)

return imageaddon2id[index];

}

加了 static 塊之後,其實我們只需要修改 static 塊部分,其它的**均不用作出改動。根據專案來判斷,不同的專案將 mood_image_key_pre 賦為不同的值即可。這樣一來大大簡化了要修改的**。

「塊定義」與「塊參照」的區別

塊定義 與 塊參照 的區別 關係 塊定義 即為 塊表記錄,模型空間,圖紙空間 塊參照 即為塊引用 塊參照 塊引用 存在於模型空間或者布局空間 塊定義和模型空間和布局空間是同等級別 同名塊不可以巢狀 要遍歷塊定義,先用塊參考求出塊定義的id blockid 然後遍歷塊定義。塊參照說明 乙個塊參考用於放...

static靜態塊使用多執行緒的問題

public class mytest catch interruptedexception e b.test 1 public static void test static class bpublic static void test public static void main string...

static語句塊的學習

引用eway 乙個類的執行,jvm做會以下幾件事情 1 類裝載 2 鏈結 3 初始化 4 例項化 而初始化階段做的事情是初始化靜態變數和執行靜態方法等的工作。class.forname args 0 true,off.getclass getclassloader jvm在load class之後就...