为何Java不支持泛型数组
来源:互联网 发布:手机网络币有几种 编辑:程序博客网 时间:2024/06/05 09:52
java中不支持以T[] arr = new T[10]的形式生成泛型数组。
这是为何?
1. java引入了泛型机制主要是为了避免ClassCastException的错误的。
class Generic {
Object info;
void setInfo(Object info) ;
Object getInfo();
}
main(){
Generic g = new Generic();
Integer i = g.setInfo("hello world").getInfo();
}
编译时无错误,但是运行时报错:Runtime error: ClassCastException。
因此java想要在编译时就查出此错误,于是加入了泛型机制。
class Generic <T> {
T info;
void setInfo(T info);
T getInfo();
}
main() {
Generic<String> g = new Generic<String>();
Integer i = g.setInfo("hello world").getInfo();
}
这时编译就会报错。
2. However,如果引入泛型数组,则Runtime ClassCastException又回来了。
main() {
Generic<String> g[] = new Generic<String>[3];
Object t[] = g;
t[0] = new Genric<Integer>();
t[0].setValue(10);
String s = g[0].getValue; //这步运行报错。
}
0 0
- 为何Java不支持泛型数组
- Java 泛型数组 不支持
- java不支持泛型数组
- 泛型不支持数组
- 分析一下为什么JAVA不支持泛型类型的数组
- Java为什么不支持泛型类型的数组
- 分析一下为什么JAVA不支持泛型类型的数组
- 分析一下为什么JAVA不支持泛型类型的数组
- 为何Java 类不支持多继承?
- 为什么Java不支持创建范型数组?
- 为什么Java不支持创建范型数组?
- 为什么Java不支持创建范型数组?
- Java不支持创建范型数组分析
- java不支持泛型数字
- Java学习总结8——泛型2(不支持泛型数组)
- 数据库中间件为何不支持join
- 数据库中间件为何不支持join
- idea不支持泛型
- mfc实现同时播放多个音乐
- Visual Studio 2015 Preview 版Secondary Installer 安装问题
- OpenCL中设置内核参数整理
- UVa 1368 - DNA Consensus String
- github ssh创建
- 为何Java不支持泛型数组
- 来美国半年总结
- Eclipse常用插件大全
- 软件工程大作业(高校在线答疑)
- UML类图几种关系的总结
- What is the purpose of using do {...} while (0) in macros?
- Molar Mass, ACM/ICPC Seoul 2007, UVa 1586
- java 接口多继承
- iOS 核心动画之CATransition