1
我想實現這個第三方註釋來映射我的類的字段/屬性到我的數據庫表列。我可以在編譯時輕鬆實現註釋(如下面的示例代碼所示),但我無法找到在運行時執行此操作的方法。 (我使用反射在運行時加載庫)Can Byte Buddy可以在運行時創建字段和方法註釋嗎?
我的問題是如何在運行時加載庫時實現相同的映射註釋?可以Byte Buddy爲Android處理此問題嗎?
//3rd party annotation code
package weborb.service;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
public @interface MapToProperty {
String property();
}
/////////////////////// //////////
//Here is the implementation using non-reflection
import weborb.service;
Class Person
{
@MapToProperty(property="Person_Name")
String name;
@MapToProperty(property="Person_Age")
int age;
@MaptoProperty(property="Person_Name")
public String getName()
{
return this.name;
}
@MaptoProperty(property="Person_Name")
public void setName(String name)
{
this.name = name;
}
@MaptoProperty(property="Person_Age")
public int getAge()
{
return this.age;
}
@MaptoProperty(property="Person_Age")
public void setAge(int age)
{
this.age = age;
}
}
班級人 { String name; int age; public String getName() { return this.name; (字符串名) { this.name = name; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } – Key
謝謝。我可以使用類似的方法在運行時在現有類上添加註釋嗎?我使用的是Byte-Buddy,Byte-Buddy-Android和dx。 – Key
理論上,是的,但Android並未實現Java的檢測API。因此,只有將類文件嵌入到應用程序中,並且修改後的類由新的類加載器加載時纔有可能。 –