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();
}
}
分享到:
相关推荐
反射和泛型是一种重要的解决途径。 此代码是一个生成泛型对象的类。 比如: Pool<Point> pool = new Pool(){}; Point p = pool.get(x, y); //在此构造Point对象 ... pool.put(p); 希望能帮助那些为查找泛型构造器、...
Java试题-3:反射和泛型的综合应用 Java反射 泛型都是比较高级的应用技术
在C#中通过反射操作一个List泛型。。
Java反射和泛型是Java编程中的两个重要特性,它们各自为开发者提供了强大的功能,并且在特定情况下可以相互结合使用。本文将深入探讨这两个概念,并通过一个具体的`Testrefl.java`示例来阐述它们的应用。 Java反射...
通过反射创建带有泛型参数的类 1.Limin.Reflector.DLL中的BaseDal.cs里包含要创建的带泛型参数的类 2.Limin.Reflector.Invoke中的Factory.cs完成泛型类的创建 代码写的不是很好,不足之处,请多多指教
在"myreflect.rar"中,你可以找到这些概念的实际应用示例,通过阅读和运行这些代码,你会更好地理解如何在实际项目中利用反射和泛型。例如,可能有类用于动态加载和实例化其他类,或者有泛型方法实现通用的集合操作...
在"反射与泛型.pptx"这个文件中,可能包含了对这些概念的详细讲解、示例代码以及实际应用案例,建议进一步查阅以获取更全面的知识。记住,理论知识的掌握只是第一步,实践和应用才能真正提升编程技能。
配合博主的博客文章,你可以更深入地了解泛型在实际项目中的应用,包括但不限于类型安全的容器、泛型与反射的交互、以及泛型在并发编程中的作用等。通过实践这些实例,你将能够更好地掌握Java泛型的精髓,提高编程...
在实际开发中,泛型和反射的应用非常广泛。例如,Spring框架就大量使用了这两种技术。Spring的依赖注入可以通过反射来创建和配置对象,而泛型则用于确保容器中存储的对象类型正确。此外,很多工具类库,如Apache ...
在Java编程语言中,泛型和反射是两个非常重要的特性,它们可以极大地提高代码的复用性和灵活性。本文将深入探讨如何结合这两种技术实现一个通用的DAO(Data Access Object)设计模式。 首先,我们来看“泛型”。...
此外,泛型在实际应用中可能会被擦除,这意味着在运行时无法直接获取到泛型信息。此时,反射可以提供一种方式来间接获取这些信息,尤其是在处理动态加载的类时。 下面是一些关于反射和泛型的实践示例: 1. **动态...
本文将详细介绍反射操作和泛型在 Java 编程中的应用,特别是结合注解(Annotation)和对象关系映射(ORM)的使用。 一、反射操作 反射操作是 Java 语言中的一种机制,允许程序在运行时检查和修改类、对象、方法、...
泛型+反射:泛型 笔记 ,课后作业
反射+泛型+三层 ^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^
对java泛型以及反射机制进行原理和应用上的讲解,帮助初学者对这两个概念进行更轻松的掌握
在.NET编程环境中,`DataReader`是用于从数据库检索数据的一种高效工具,而反射则是一种强大的技术,用于在运行时检查和操作类型。泛型则增强了代码的类型安全性和重用性。结合这三者,我们可以创建一个通用的方法,...
反射与泛型是指在反射机制中如何操作泛型。泛型是 Java 语言中的一种类型参数机制,反射机制可以动态地获取泛型的信息和调用泛型的方法。 反射源码与性能开销是指在反射机制中如何影响性能。反射机制可以动态地获取...
Java反射与泛型是Java编程中的两个重要特性,它们各自为开发者提供了强大的工具来增强代码的灵活性和类型安全性。在本教程中,我们将深入探讨这两个主题,帮助你更好地理解和运用它们。 **Java反射** Java反射机制...
泛型主要是为了解决在编程中频繁进行类型转换的问题,而反射则允许程序在运行时动态地获取类的信息和调用方法。 泛型类型: 在 Java 5 之前,像 `Hashtable` 这样的集合类只能存储 `Object` 类型的数据,这意味着在...
本示例展示了使用工厂方法设计模式,利用反射,通过泛型接口获取具体类型的列表。比如,要返回一张表的数据,通常使用List<具体表名>,本示例源码展示了通过类型参数传递表名,使用List的形式返回具体的表数据