下面的代碼返回一個錯誤,但我不知道爲什麼。需要更改哪些內容才能編譯?這個switch語句有什麼問題?
switch (DAO.class) {
case BookDAO.class:
return bookDAO;
}
下面的代碼返回一個錯誤,但我不知道爲什麼。需要更改哪些內容才能編譯?這個switch語句有什麼問題?
switch (DAO.class) {
case BookDAO.class:
return bookDAO;
}
甲switch作品與byte
,short
,char
和int
原始數據類型。它也適用於枚舉類型(以及Java 7以上的String
)。不是Class
類型。的DAO
DAO.class
返回類對象參考此爲what .class means
從Java文檔
的開關的工作原理與字節,短,炭,和INT原始數據 類型。它還可以與枚舉類型(在枚舉類型討論), String類,以及一些特殊的類來封裝某些 基本類型:字符,字節,短,和整數
這裏是switch語句的定義:
與if-then和if-then-else語句不同,switch語句可以有多個可能的執行路徑。 交換機使用byte,short,char和int基本數據類型。它還可以與枚舉類型(在枚舉類型討論),String類,並一些特殊類來封裝某些基本類型:字符,字節,短,和整數(數字和字符串討論)。
所以不允許在switch語句類型(類classOfA =的A.class;)
如果您使用的是Java 7 - 您可以使用帶有串行中的開關語句。 然後,你可以做這樣的事情:
switch (DAO.class.getName()){
case BookDAO.class.getName() : return bookDAO;
}
返回此Class對象所表示的實體(類,接口,數組類,基本類型,或空隙)的名稱,作爲一個字符串。
它給了什麼錯誤? – Raedwald