ToB企服应用市场:ToB评测及商务社交产业平台

标题: Java泛型不能使用instanceOf [打印本页]

作者: 前进之路    时间: 2022-8-28 22:09
标题: Java泛型不能使用instanceOf
转自:
  http://www.java265.com/JavaCourse/202205/3591.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泛型不能使用instanceOf方法的简介说明,如下所示
  1. 由于编译器使用类型擦除,
  2. 所以运行时无法跟踪类型参数,所以不能使用instanceOf运算符
复制代码
  1.   
  2. InfoClass<Integer> integerInfoClass = new InfoClass<Integer>();
  3. //Compiler Error:
  4. //Cannot perform instanceof check against
  5. //parameterized type InfoClass<Integer>.
  6. //Use the form InfoClass<?> instead since further
  7. //generic type information will be erased at runtime
  8. if(integerInfoClass instanceof InfoClass<Integer>) { }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4