0
我對Java編程比較陌生。我需要使用反射來獲取字段值。我當前的代碼如下所示(其中超是一組擴展MySuperClass
類):獲取字段值而無需使用超類的導入?
for (Class<? extends MySuperClass> s : subclasses) {
try {
field = s.getDeclaredField("MY_FIELD");
fieldValue = (String) field.get(null);
} catch ...
我的問題是,每當我打電話field.get,我得到一個錯誤,因爲該類org.slf4j.LoggerFactory
沒有被發現。這是從哪裏來的?那麼,MySuperClass
進口它。我不知道爲什麼Java認爲有必要擁有它,因爲我想從中獲取MY_FIELD
值的類不會導入它。當然,他們延伸MySuperClass
(如果有關係,這是抽象的)。那麼有什麼辦法可以從只有從特定的類獲取字段值,而不依賴於超類使用的類?我不需要實例化一個類或其他東西,只需要得到那個值...
我希望我能夠解釋我的問題在哪裏,並且爲我的小Java知識而道歉。
非常感謝提前。
'import'語句不會做你認爲它的作用。它實際上並不包含任何東西。如果你得到一個'ClassNotFoundException',那麼你已經加載/初始化的一些類需要它,而不是因爲'import',而是因爲它實際上使用了它。 – 2014-12-02 15:23:06
堆棧跟蹤和可重現的示例在這裏會有所幫助。 – 2014-12-02 15:27:32