Java匿名內部類的一些寫法。
阿新 • • 發佈:2018-12-26
一 常見問題
1. final static修飾的
public class InnerClassTest {
private final static Map<Integer,Integer> mapInteger = new HashMap<Integer,Integer>(){
{
//正確寫法
put(1, 2);
//錯誤寫法;原因是由於mapInteger是final修飾的,這裡相當於說是對mapInteger做修改和操作,所以下面的mapInteger.get(1)是獲取不到的。
//mapInteger.put(1,2);
}
};
static {
//這樣也是可以得
//mapInteger.put(1,2);
}
@Test
public void testInner(){
System.out.print(mapInteger.get(1));
}
}
2. 啟動執行緒
@Test
public void testThread1(){
new Thread(){
@Override
public void run() {
System.out.println("I am running !");
}
{
//內部類的寫法
start();
}
}
//常見寫法
//.start()
;
}
3. 重寫父類方法
Map param = new HashMap<String,String>(){
@Override
public String put(String key, String value) {
System.out.println("override !");
return super.put(key, value);
}
{
put("name","tom");
put("password","12345678");
}
};