2013-07-10 185 views

回答

16

switch作品與byteshortcharint原始數據類型。它也適用於枚舉類型(以及Java 7以上的String)。不是Class類型。的DAO

DAO.class返回類對象參考此爲what .class means

+1

@RiaD:我以爲鏈接會覆蓋剩下的東西。 – kosa

+1

好一個@Nambari !! – user2416728

+0

所以我必須使用ifs ..great – osh

4

從Java文檔

的開關的工作原理與字節,短,炭,和INT原始數據 類型。它還可以與枚舉類型(在枚舉類型討論), String類,以及一些特殊的類來封裝某些 基本類型:字符,字節,短,和整數

2

這裏是switch語句的定義:

與if-then和if-then-else語句不同,switch語句可以有多個可能的執行路徑。 交換機使用byte,short,char和int基本數據類型。它還可以與枚舉類型(在枚舉類型討論),String類,並一些特殊類來封裝某些基本類型:字符,字節,短,和整數(數字和字符串討論)。


所以不允許在switch語句類型(類classOfA =的A.class;)

3

如果您使用的是Java 7 - 您可以使用帶有串行中的開關語句。 然後,你可以做這樣的事情:

switch (DAO.class.getName()){ 
    case BookDAO.class.getName() : return bookDAO; 
} 

getName():

返回此Class對象所表示的實體(類,接口,數組類,基本類型,或空隙)的名稱,作爲一個字符串。