[英]How to define a generic List of types in java?
我已经实现了具有以下签名的java方法:
public <T> T getItemValue(String itemName, Class<T> itemType) {
...
}
这允许客户端以以下方式调用该方法,以获取例如String或Integer类型的值:
String s = itemCol.getItemValue("_name", String.class);
int i = itemCol.getItemValue("_count", Integer.class);
新的微配置文件Config 1.3 API的Config接口也使用这种方法签名。
我的问题是如何(或是否)可以使用类型为List<String>
的类型的List来调用该方法,以获取例如String对象的List。 我无法提出客户电话。 我尝试过这样的事情:
List<String> list = itemCol.getItemValue("_count", List<String.class>);
但这似乎不是正确的语法。
编辑:
由于以下响应,我决定添加一个单独的方法来获取特定类型的列表。
public <T> List<T> getItemValueList(String itemName, Class<T> itemType) {
...
}
使用此附加方法签名,客户可以决定天气以获取单个值或特定类型的列表。
类型参数被删除,它们在运行时不存在。 在运行时没有List<String>
这样的东西,只有List
。
因此,表达List<String>
的反射代理的正确方法是…您不能。 您只能为List
表示反射型代理,就像对其他任何类List.class
。
不与List<String.class>
。 您需要使用TypeToken来获得这种通用信息。 您还需要更改代码以使用Type
而不是Class
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.