[英]A Java reflection wrapper code generator?
我想使用僅在運行時環境中可用的類,並且沒有任何.java或.class文件。 使用AFAIK的唯一方法是通過反射。
我已經做的是編寫一個小程序來獲取目標類的Class
實例,並遍歷其公共方法/字段並獲取其簽名(類似於此程序 )。 這將為我提供.java源文件的框架。 然后,我手動填充了這些方法的主體,以便它們使用反射調用實際方法。 這樣的Java文件由javac連同我的用戶代碼一起編譯。 這樣,我可以使用目標類而不用方法/字段獲取器填充代碼。
這是我的問題:
您嘗試做的是一個代理類。 很多框架都使用它來注入一些自動化,事務等功能。例如,Java EE,Spring。
有2種方法:具有java.lang.reflect.Proxy的簡單方法,但是它有一個約束:您的類必須實現一個接口,並且只能調用Interface中的方法。
更復雜的一種依賴於字節碼生成,您可以使用Mockito框架來生成所需的全部內容:它用於測試,但也可以用於生成覆蓋現有類的任何類型的類。
如果您需要,我可以用示例來補充我的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.