ByteBuddy を使用するのは初めてで、型のmyValuejava.lang.Object
という名前のパブリック フィールドが 1 つだけで、デフォルト値が "Hello World !"のサブクラスを動的に作成したいと考えています。残念ながら、 myClass.newInstance() を呼び出した後、フィールドの値は(Eclipse デバッガー内で) になります。java.lang.String
null
final Class<?> myClass = new ByteBuddy().subclass(Object.class).name("test.MyClass")
.defineField("myValue", String.class, Visibility.PUBLIC)
.value("Hello World !")
.make()
.load(getClass().getClassLoader(), ClassLoadingStrategy.Default.INJECTION).getLoaded();
Object myObject = myClass.newInstance();
ここで何か不足していますか?
私はEclipse Mars.2、Oracle JDK 1.7.0_75、およびByteBuddy-1.2.3を使用しています