1. 程式人生 > >Java匿名內部類的一些寫法。

Java匿名內部類的一些寫法。

一 常見問題

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"); } };