Java泛型没有数组
转自:
http://www.java265.com/JavaCourse/202205/3592.html
泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。Ada、Delphi、Eiffel、Java、C#、F#、Swift和Visual Basic .NET称之为泛型(generics);ML、Scala和Haskell称之为参数多态(parametric polymorphism);C++和D称之为模板。具有广泛影响的1994年版的《Design Patterns》一书称之为参数化类型(parameterized type)
下文笔者讲述java泛型没有数组的简介说明
java泛型无法定义泛型数组 如: //Cannot create a generic array of InfoClass<Integer> InfoClass<Integer>[] arrayOfLists = new InfoClass<Integer>[2]; 由于编译器使用类型擦除 所以类型参数被替换为对象 用户可以将任何类型的对象添加到数组中 在运行时,代码将无法抛出ArrayStoreException
// compiler error, but if it is allowed Object[] arrs = new InfoClass<String>[]; // OK arrs[0] = new InfoClass<String>(); // An ArrayStoreException should be thrown, //but the runtime can"t detect it. arrs[1] = new InfoClass<Integer>();