`
happyqing
  • 浏览: 3183367 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java父类取得子类传递的泛型参数Class类型

    博客分类:
  • java
阅读更多

 

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

import org.junit.Test;

abstract class BaseDao<T> {
	public void getType() {
		//Class<E> clazz = (Class<E>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
		Type t = getClass().getGenericSuperclass();  
		ParameterizedType p = (ParameterizedType) t ;  
		Class<T> c = (Class<T>) p.getActualTypeArguments()[0];
		System.out.println(c.getName());	//java.lang.String
	}
}

public class SubDao extends BaseDao<String> {
	@Test
	public void test1() {
		getType();
	}
}

 

分享到:
评论

相关推荐

    Java源码泛型类的继承应用.rar

    当子类继承泛型父类并指定具体的类型参数时,子类就变成了非泛型类。例如: ```java public class ConcreteChild extends GenericClass&lt;String&gt; { // ... } ``` 在这种情况下,`ConcreteChild`类只能处理`...

    Java泛型指南

    Java泛型提供了强大的类型安全性和代码复用性,通过类型参数、通配符、类型擦除等机制,使得Java程序在类型管理上更加灵活和高效。然而,理解和使用泛型也存在一定的复杂性,尤其是当涉及到类型擦除、通配符以及多重...

    Java开发技术大全(500个源代码).

    deriveClass.java 子类访问父类变量示例 getLinePara.java 获取命令行参数示例 hasStaticMethod.java 静态成员方法示例 hasStatMember.java 静态成员变量示例 HelloNative.c 用C写的一个小程序 HelloNative....

    jdk1.5的泛型实现

    - 泛型类的子类可以选择继承父类的类型参数,或者指定自己的类型参数。 - 泛型方法的重写需要保持类型参数的一致性或扩大范围。 9. 泛型的局限性: - 泛型不能用于基本类型,但可以通过Wrapper类进行操作。 - ...

    Java语言程序设计基础第十版第十一章课后复习题答案

    - **解析**: 当子类中的方法与父类的方法名字相同但参数列表不同(参数类型、数量或顺序不同),这被称为方法重载。在这种情况下,子类中定义的新方法并不会重写父类中的方法,而是一种独立的方法重载形式。 #### ...

    试题样例(面向对象以java为代表)1

    14. 方法重载与重写:Java中,方法重载发生在同一类中,方法名相同但参数列表不同,而重写发生在子类对父类方法的覆盖。这里的三个a方法,第一个和第二个是重载,第三个与第二个签名冲突,导致编译错误。 15. 类的...

    java基础之反射和泛型以及注解

    extends T`表示类型参数必须是T或其子类,而`? super T`表示类型参数必须是T或其父类。 注解(Annotation)是另一种元数据,提供了在源代码中添加元信息的方式。注解可以被编译器、JVM或其他工具用来执行特定的...

    Scala编程详解 第19讲-Scala编程详解:类型参数 共13页.pptx

    - 类似于泛型类,Scala也支持函数的类型推断,如果给使用了泛型类型的参数传递值,Scala会自动推断类型,或者也可以在调用时显式指定类型,如`getCard[String]("hello world")`。 3. **类型参数的边界(Bounds)**...

    《HEADFIRSTJAVA》--深入浅出Java说明与归纳.pdf

    Java中的参数传递是按值传递,意味着方法接收的是参数值的副本。 4. Java类和对象:类是创建对象的模板。Java中的类可以继承自其他类,实现了is-a关系(IS-A)。类可以通过关键字extends来继承父类的属性和方法。...

    小贝程序员生活\课件\java\javaclass\fourteen lesson.rar

    9. **泛型**:泛型引入了类型参数,增强了代码的安全性和可读性,防止了类型转换错误。 10. **反射**:Java反射API允许在运行时检查类的信息,创建和访问对象,以及调用方法。 11. **注解(Annotation)**:注解是...

    [北京圣思园Java培训教学视频]Java.SE.Lesson.4_code.rar

    - 方法定义与调用:方法是Java中实现功能的单元,通过参数传递和返回值来完成特定任务。 2. **面向对象编程** - 类与对象:Java是一种面向对象的语言,会讲解如何定义类、创建对象以及使用对象。 - 继承:Java...

    Java语法总结.zip

    方法定义了参数列表,用于传递输入值,以及返回类型,表示方法执行后的结果。void关键字表示无返回值。 类和对象是Java的核心概念。类是对象的模板,定义了对象的状态(属性)和行为(方法)。对象是类的实例,具有...

    2021秋招】Java 面试知识点【精华背诵版

    泛型是 Java 5 引入的一个重要特性,它允许你在类、接口和方法中使用类型参数。这样可以在编译时检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率和安全性。 #### 泛型的作用 1. **类型安全...

    从初面到终面:JAVA面试系列之java基础面试题及答案

    28. **值传递与引用传递**:Java总是进行值传递,对于基本类型传递的是值副本,对于对象则是对象引用的副本。 29. **==与equals**:==比较的是变量的值(基本类型比较值,引用类型比较地址),equals默认比较对象的...

    疯狂JAVA讲义

    8.4.2 泛型方法和类型通配符的区别 306 8.4.3 设定通配符的下限 307 8.4.4 泛型方法与方法重载 309 8.5 擦除和转换 310 8.6 泛型与数组 311 8.7 本章小结 313 第9章 与运行环境交互 314 9.1 与用户互动 315 ...

    java期末复习 (1)

    例如,在子类中有一个与父类同名的方法时,可以通过`super.方法名()`来显式调用父类的方法。 #### 位运算 3. **位或运算**:若`x=4,y=2`,`z=x|y`,则`z`的值为`6`。这里使用的是按位或(`|`)运算符,它对两个操作数...

    JAVA对象模块.rar

    泛型允许在类、接口和方法中使用类型参数,提高了代码的类型安全性和可读性。 14. 并发编程(Concurrency): Java提供了丰富的并发工具,如线程、锁、同步机制等,以支持多线程编程。 15. 注解(Annotations)...

    Java 高级特性.doc

    泛型增加了类型安全,允许在类、接口和方法中定义类型参数,限制了可以传递的数据类型。例如,泛型列表`List&lt;String&gt;`只能存储字符串,不能存储整数。泛型还可以使用边界,如`&lt;T extends Number&gt;`限制类型参数必须是...

    nice java material

    - **定义**:子类可以覆盖父类的方法,但不能降低方法的访问级别。 - **示例**: ```java public class Base { protected void method() {} } public class Derived extends Base { @Override protected ...

Global site tag (gtag.js) - Google Analytics