我正在使用List.class
因为List<String>.class
错误。是否有一种语法可以获得参数化类的类?
代码:
import java.util.List;
import org.apache.camel.Message;
...
Message m = exchange.getIn();
List<String> serviceIds = null;
serviceIds = m.getHeader("serviceId", List.class);
当然我宁愿:
serviceIds = m.getHeader("serviceId", List<String>.class);
确保如果标题中没有字符串的列表,则getHeader将返回null。
答案 0 :(得分:7)
你不能给它一个List<String>
类,因为没有这样的类:编译器在type erasure的过程中删除<String>
的类型,留下你的纯List
。
答案 1 :(得分:3)
我不完全确定我理解你的问题,但如果你有一个List
参数化了一些类,例如:
List<Cat> myCats = new ArrayList<Cat>();
您有一些要调用的API方法:
public static void doSomething(Class<T> clazz);
并且您希望使用Cat.class
提供该方法,遗憾的是无法确定(在运行时)List
中包含的参数化类。此信息在运行时被删除。
我相信你的问题可能与此问题重复,但如果我弄错了,请不要犹豫纠正我: