作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我定义了一个对象,该对象在其构造函数中采用类型参数:
public DynParameterDaoImpl(Class<T1> type) {
super();
...
}
实例化效果很好
DynParameterDaoImpl myVar = new DynParameterDaoImpl(Atype.class);
有没有办法以列表的类型来做到这一点。以下内容不起作用..
DynParameterDaoImpl myVar = new DynParameterDaoImpl(List<Atype>.class);
最佳答案
没有。
List<AType>
是一个类型,但它不是一个类,因为类型删除确保 List<X>
由与 List<Y>
相同的类表示适用于所有引用类型X
和Y
.
例如,
List<String> strings = new ArrayList<String>(); // Legal
boolean b = strings instanceof List<Number>; // Compiler Rejects
编译器拒绝 instanceof
检查,因为没有足够的信息可供虚拟机区分 List<String>
和List<Number>
.
如果有可能获得像 List<String>
这样的非类类型的类值,则反射等效
Class<? extends List<String>> stringListClass = strings.getClass(); // Illegal
Class<? extends List<Number>> numberListClass = List<Number>.class; // Illegal
boolean b = numberListClass.isAssignableFrom(stringListClass);
会通过,这将无声地违反类型安全。
关于java - 如何获取 List<aType> 的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22614653/
我定义了一个对象,该对象在其构造函数中采用类型参数: public DynParameterDaoImpl(Class type) { super(); ...
C++ 和其他几种语言有一个名为 sizeof(int) 的函数(或您需要的任何类型),它返回当前系统中特定数据类型消耗的字节数。 Go 中是否有等效的函数?这是什么? 最佳答案 如果您想找出特定值
我是一名优秀的程序员,十分优秀!