我剛剛升級了一個庫,而另一個開始投擲NoSuchFieldError
。如果這個領域被刪除了,那很好。但它仍然存在。它只是被棄用。NoSuchFieldError但字段有
Hibernate.TIMESTAMP.nullSafeGet(null, null); // << works
new PersistentDateTime().nullSafeGet(null, null); // << throws NoSuchFieldError
其中所述nullSafeGet
方法具有:
Hibernate.TIMESTAMP.nullSafeGet(resultSet, string);
(當然,未發現該字段是TIMESTAMP
)
庫的正確版本是在類路徑(otherewise我的手動測試不會有效)
爲什麼會這樣呢?
更新:我創建了一個新類,覆蓋舊的類,並使用完全相同的代碼定義相同的方法,現在它可以工作。任何想法在字節碼中應該發生什麼?
重新打開此討論的道歉,但我很好奇 - 這將如何導致NoSuchFieldError?我期望一個程序使用庫中定義的靜態最終變量來使用舊值,而不是訪問它時的新值。 – 2014-09-16 04:18:51