我有一個簡單的類蘋果延伸從另一個簡單的類水果。如何找出Java中標識符的聲明類型?
在運行時,我可以用
Fruit fruit = new Apple();
fruit.getClass();
獲得實際類型的水果對象,這是Apple.class的。
我也可以使用fruit instanceof Apple
和fruit instanceof Fruit
來驗證這個水果對象是Apple還是Fruit的一個實例。這兩個表達式都返回true,這是正常的。
但是有沒有一種方法可以精確確定標識符的聲明類型?在這種情況下是Fruit
。
你應該描述你想在達到差異化後達到什麼效果。我相信還有其他方法可以解決這個原始問題。 – Bananeweizen 2012-07-07 12:56:58
我很好奇爲什麼你想知道(如何聲明'水果'),以及分開,爲什麼你不知道*因爲你有代碼在你面前。我沒有提出一個用例。 'fruit'指向**的對象是** Apple'。你通過'fruit'變量的接口是'Fruit',但這純粹是編譯時的事情。 – 2012-07-07 12:58:00
這樣做的意義是什麼 - 你已經將水果編碼爲水果,所以你已經知道它就是這樣。 – DaveRlz 2012-07-07 12:59:37