這是我第一次使用ByteBuddy,我想動態創建一個java.lang.Object
的子類,只有一個名爲myValue的公共字段,其類型爲java.lang.String
,默認值爲「Hello World!」。 不幸的是,在調用myClass.newInstance()之後,該字段的值爲null
(在Eclipse調試器中)。如何將默認值分配給新定義的字段?
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
我很困惑,爲什麼你想這樣做? –
原因並非真正相關,因爲我只是在探索圖書館(正如「Hello World!」值所示)。我想仿效的課程如下所示: 'package test; public class MyClass {0} {0} {0} public int myValue =「Hello World!」; }' –