Java泛型不能使用instanceOf

打印 上一主题 下一主题

主题 852|帖子 852|积分 2556

转自:
  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>) { }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表