【发布时间】:2018-06-07 11:23:43
【问题描述】:
我正在使用新的 API,但在实例化 Class 对象时遇到问题,API 定义了一个抽象类 Tag 及其子类,命名为 IntTag、DoubleTag、StringTag、ListTag... 等。我正在与目前最后一个,因为 构造函数如下:
public ListTag(final String name, final Class<? extends Tag> type, final List<Tag> value);
所以基本上第一个字段和最后一个字段我都没有问题,它就像一个json对象,这个是一个列表所以你输入名称和里面的内容,但是我不明白中间那个,我不'不明白如何实例化这种对象以及我应该在其中放入什么。
有什么建议吗?我刚刚了解了?扩展标签而不是标签,所以这不是我的问题,也不需要解释我的通用性(我希望?)
提前致谢!
--
如果你愿意,我也从here 下载了 API。
【问题讨论】:
-
你不能。
Class<? extends Tag>是一个抽象类型。只需使用Class<Tag>代替,通过Tag.class。 -
new ListTag("some Name", IntTag.class, myList)怎么样。 -
你不需要实例化那个类型的对象,你可以给它任何类型为 Tag 的对象或 Tag 的任何子类型。
-
请不要尝试实例化
Class类型的对象。只需为此使用Classname.class。在您的情况下,只需Tag.class。 -
然后使用...
DoubleTag.class或其他任何东西。老实说,如果您此时不理解它,您应该回到关于继承等的教程。