我想檢查存在於java類文件中的註釋,而不需要加載它的任何依賴關係,只需要加載基本的JVM庫和有問題的類文件。有沒有辦法在「未加載」的java類文件中檢查類,字段和方法級別的註釋?
要在運行時在java中加載一個類,需要一個類路徑,使其具有字段,方法和參數依賴關係。我想在非其他文件可能存在的環境中執行此操作。
這可能嗎?有沒有可用的庫來做到這一點?
我想檢查存在於java類文件中的註釋,而不需要加載它的任何依賴關係,只需要加載基本的JVM庫和有問題的類文件。有沒有辦法在「未加載」的java類文件中檢查類,字段和方法級別的註釋?
要在運行時在java中加載一個類,需要一個類路徑,使其具有字段,方法和參數依賴關係。我想在非其他文件可能存在的環境中執行此操作。
這可能嗎?有沒有可用的庫來做到這一點?
簡單:那你不想加載這個班。
您認爲該類爲類文件生活在文件系統中。
換句話說:它是一個包含二進制數據的資源 - 然後解析。無論是你自己,還是通過使用一個爲你做這件事的圖書館(這將是理智的,首選的方式,而不是重新發明輪子)。
您不需要任何外部庫,只需使用java.lang.Class即可。寫下你的班級的名字:
[NameOfMyClass].class.getDeclaredFields();
[NameOfMyClass].class.getDeclaredConstructors();
[NameOfMyClass].class.getDeclaredMethods();
接口和許多其他屬性是一樣的。
請注意,這需要將類文件加載到想要讀取這些值的應用程序中。 – peterk
幾乎所有的字節碼操作庫都會提供這個功能,請參閱https://stackoverflow.com/questions/2261947/are-there-alternatives-to-cglib –