`

反射中泛型应用的易错点

 
阅读更多
public class Test
{
    public void func()
    {
         System.out.println("func");
   }
   
   public static void main(String args[]) throws Exception
   {
           Test  obj = new Test ();
           //下面这行可以成功编译 
           ((Test)obj).getClass().newInstance().func();
           // Class<? extends Test> -- (Test)obj).getClass()
           //<? extends Test>(即为Test) -- ((Test)obj).getClass().newInstance()
          
           //下面这两行无法通过编译
           /*Class  c = ((Test)obj).getClass();
             c.newInstance().func();
            * 将返回值为Class<? extends Test>类型的(Test)obj).getClass()
            * 强制转换成了Class类型(默认是Class<?>)
            * Object -- c.newInstance()
            */
        //解决方案   1:
    Class<? extends Test> c = ((Test)obj).getClass();
            c.newInstance().func();
       //解决方案   2:
    Class c2 = ((Test)obj).getClass();
            ((Test) c2.newInstance()).func();
  
}
}
分享到:
评论

相关推荐

    反射很好的例子,还不错

    - 在Java中,由于类型擦除,反射无法直接获取泛型的实际类型。不过,可以使用ParameterizedType接口来处理泛型信息,但需要在获取时特别处理。 6. **注解的反射**: - 注解提供了一种元数据的方式,可以在运行时...

    达内java易错题集

    Java编程语言是软件开发领域的重要工具,尤其在企业级应用中广泛应用。"达内java易错题集"可能是一个专门针对学习者或开发者设计的资源,旨在帮助他们识别并纠正编程过程中常见的错误,提高编程技能和解决问题的能力...

    Java 解惑(细致实用)

    本篇将基于“Java解惑”这一主题,详细探讨Java中的常见问题、易错点以及需要注意的细节。 1. **内存管理与垃圾回收** - Java的自动内存管理机制是通过垃圾回收(Garbage Collection, GC)来实现的。理解如何工作...

    OCJP试题 讲解(本人亲测有效,稳过)

    试题讲解通常会包含解题思路、陷阱解析以及易错点提醒,有助于考生巩固知识,提升应试技巧。 总之,OCJP认证是对Java开发者技能的一种权威认可,备考过程中通过详尽的试题讲解和实践训练,不仅可以提高考试通过率,...

    JAVA解惑.大全和问题解析

    它涵盖了Java的基础知识、常见疑惑点以及易错知识点,旨在帮助Java初学者和进阶者解决实际编程中的困扰。 1. **基础概念解析**: - 类与对象:Java是一种面向对象的语言,理解类的定义、对象的创建及其生命周期至...

    java笔试题集锦内附答案

    9. **反射机制**:通过Class类获取类的信息,动态创建对象,调用方法和修改字段值,理解反射在实际开发中的应用。 10. **JVM优化**:了解JVM的内存结构,理解如何进行性能调优,包括JVM参数设置、类加载机制、垃圾...

    java-foundation.rar_foundation

    这份"java-foundation.rar_foundation"文件显然是针对Java面试中常见的基础知识和易错点进行总结的文档,旨在帮助求职者加强基础,避免在面试中犯错。下面,我们将详细探讨Java基础中的关键知识点。 1. **Java语法...

    Java经典复习资料

    这份"Java经典复习资料"集合了Java学习过程中的关键知识点,旨在帮助开发者巩固基础,理解和掌握Java的重难点以及常见易错点。以下是这些复习题可能涵盖的一些核心主题: 1. **Java基础**:包括变量、数据类型、...

Global site tag (gtag.js) - Google Analytics