我正在使用一个新的API而我在设置一个Class对象时遇到了麻烦,API定义了一个抽象类Tag,它的子命名为IntTag,DoubleTag,StringTag,ListTag ...等我正在与之战斗目前的最后一个是因为 构造函数如下:
public ListTag(final String name, final Class<? extends Tag> type, final List<Tag> value);
所以基本上我对第一个字段和最后一个字段没有问题,它就像一个json对象,这个是一个列表,所以你输入名称和里面的内容,但我不明白中间的,我不知道我不明白如何实例化这种物体,我应该把它放在里面。
有什么建议吗?我刚学会了什么?扩展Tag而不是Tag,这不是我的问题,也没有必要解释我的通用性(我希望?)
提前致谢!
-
此外,如果您希望我从here下载API。
答案 0 :(得分:1)
你会传递一个扩展Tag
的课程,例如IntTag.class
,DoubleTag.class
等。
Class
类型没有公共构造函数,因此您无法使用典型的new
语法对其进行实例化。您必须依靠编译器来解析IntTag.class
之类的class literals或通过Object.getClass
等函数获取实例。