2011-10-01 25 views
0

我打算通ThreadLocal的類,發現示例我應該如何對本例中給出的嵌套類進行分類?

public class UniqueThreadIdGenerator { 

private static final AtomicInteger uniqueId = new AtomicInteger(0); 

private static final ThreadLocal <Integer> uniqueNum = 
    new ThreadLocal <Integer>() { 
     @Override protected Integer initialValue() { 
      return uniqueId.getAndIncrement(); 
    } 
}; 

public static int getCurrentThreadId() { 
    return uniqueId.get(); 
} 
} // UniqueThreadIdGenerator 

下面想知道的ThreadLocal上面創建應歸類爲內部類/匿名類的類?不確定。

回答

1

這是ThreadLocalanonymous subclass

inner class是一個類聲明裏面的另一個類聲明,使用class關鍵字。例如,Bar是一個內部類的Foo如下:

class Foo { 
    int a; 
    boolean b; 

    class Bar { 
     String s; 
    } 
} 
+0

嗨馬特,按照匿名類定義他們是爲了用於一次,他們沒有名字。但是在這裏我可以這個類的名字與uniqueNum變量(通過其在以不同的方式),我們可以使用多次指該類參考uniqueNum –

+1

**'uniqueNum'是不是類。**這是一個匿名的實例類。 –

1

,因爲它沒有一個名字這是匿名的。那麼,無論如何,沒有一個代碼已經被明確地創建,但那不是重點。

+0

+1暗示到JVM沒有** **匿名類,它們都有一個名字。 –

+0

如果沒記錯的話這可能是這樣的'$ UniqueThreadIdGenerator 1'。甚至會有一個以該名稱生成的類文件。 –

相關問題