簡體   English   中英

Java反射包裝器代碼生成器?

[英]A Java reflection wrapper code generator?

我想使用僅在運行時環境中可用的類,並且沒有任何.java或.class文件。 使用AFAIK的唯一方法是通過反射。

我已經做的是編寫一個小程序來獲取目標類的Class實例,並遍歷其公共方法/字段並獲取其簽名(類似於此程序 )。 這將為我提供.java源文件的框架。 然后,我手動填充了這些方法的主體,以便它們使用反射調用實際方法。 這樣的Java文件由javac連同我的用戶代碼一起編譯。 這樣,我可以使用目標類而不用方法/字段獲取器填充代碼。

這是我的問題:

  • 我要做什么有一個特定的術語? (也許是“ Java反射包裝代碼生成器”?)
  • 有沒有可以自動執行我在上面手動完成的任務的工具?
  • 如果沒有,那么構建這樣一個工具的挑戰是什么?

您嘗試做的是一個代理類。 很多框架都使用它來注入一些自動化,事務等功能。例如,Java EE,Spring。

有2種方法:具有java.lang.reflect.Proxy的簡單方法,但是它有一個約束:您的類必須實現一個接口,並且只能調用Interface中的方法。

更復雜的一種依賴於字節碼生成,您可以使用Mockito框架來生成所需的全部內容:它用於測試,但也可以用於生成覆蓋現有類的任何類型的類。

如果您需要,我可以用示例來補充我的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM