簡體   English   中英

創建具有可變數量字段的類

[英]Create classes with variable number of fields

我想創建一組具有可變數量字段的類。 我嘗試了什么:

private Class<?> generateClass(String clazzName, Map<String, Class<?>> fields) {
    DynamicType.Builder<Object> buddy = new ByteBuddy()
            .subclass(Object.class)
            .name(clazzName);
    
    fields.forEach((k, v) -> {
        buddy.defineField(k, v, Visibility.PRIVATE);
    });
    return buddy.make().load(ClassLoader.getSystemClassLoader()).getLoaded();
}

其中參數clazzName是要創建的class名稱,字段的key代表字段名稱,value代表字段類型。

上述代碼的問題在於它創建了 class 但沒有任何字段。 我錯過了什么?

也可以從上面的字段中生成公共吸氣劑嗎?

Byte Buddy 的 API 是不可變的。 您將需要分配字段定義:

buddy = buddy.defineField(k, v, Visibility.PRIVATE);

您基本上是立即放棄所做的更改。

暫無
暫無

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

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