父类如何获取子类的范型

1,spring中一配置了<bean></bean>再启动项目的时候就会自动创建该类的实例。

2,java内存那块还得继续深入。

3,上代码:

  1. public class subParam extends param<myclass, myinvoke> {  //subParam 继承了param 。param里面俩范型
  2. public static void main(String[] args) throws Exception{
  3. subParam  s = new subParam();  //子类一实例化,父类的构造函数里有乾坤
  4. }
  5. }
  1. public class param<T1, T2> {
  2. class A {}
  3. class B extends A {}
  4. private Class<T1> entityClass;
  5. protected param (){
  6. Type type = getClass().getGenericSuperclass();  //先得到当前类的Class,在得到当前类的父范型Class
  7. System.out.println("getClass()==" + getClass());
  8. System.out.println("type = " + type);
  9. Type trueType = ((ParameterizedType)type).getActualTypeArguments()[0];  //强转为 可范型化的类型,得到父范型的真实的类的参数。
  10. System.out.println("trueType1 = " + trueType);
  11. trueType = ((ParameterizedType)type).getActualTypeArguments()[1];
  12. System.out.println("trueType2 = " + trueType);
  13. this.entityClass = (Class<T1>)trueType;
  14. B t = new B();
  15. type = t.getClass().getGenericSuperclass();
  16. System.out.println("B is A‘s super class :" + ((ParameterizedType)type).getActualTypeArguments().length);  //有时候强转会报异常。
  17. }
  18. }

public static <T> Class<T> getClassGenricType(final Class clazz) //第一个<T> 只是声明范型,没有别的意思。
{
return getClassGenricType(clazz, 0);
}

时间: 2024-10-08 09:04:04

父类如何获取子类的范型的相关文章

今天分享一个在JPA进行CRUD的时候遇见的一个问题:父类如何获取子类传递的泛型!

我把Delete分享出来大家看看! -------------------------------------------------------------------------------------------- public class IBasicDaoImpl<T> implements BasicDao<T> { //实体类class private Class<T> entityClass = null; //ID字段的class { //getSup

父类如何获取子类传递的泛型

权声明:本文为博主原创文章,未经博主允许不得转载. package com.reflect.other; import java.io.Serializable; /** * 简单pojo类(测试用,无具体意义) * * @author edgewalk * @date 2017年6月5日 */ public class Person implements Serializable { private static final long serialVersionUID = 1L; privat

Java千百问_05面向对象(014)_如何获取范型的类Class

点击进入_更多_Java千百问 1.如何获取范型的类Class java中,无法获取范型的类型,例如: public class Box<T> { public static void main(String[] args) { System.out.printf(T);//编译错误 } } 其实,由于java是强类型语言,在编译时我们并不知道T是什么具体类型,只有在编译后,不同场景指定之后才会知道,所以在编译前是无法获取T的类型.如果想获取T的类型,可以在泛型类中声明一个对象,通过对象获取当

Java范型随笔

最近在帝都好无聊啊, 排遣寂寞就只有让自己不要停下来,不断的思考了 QWQ; 最近做ndk, java有点忘了,突然看到了一些java范型方面的问题, 踌躇了一会, 想着想着,决定还是写个随笔记录下来. 范型语法这个网上找度娘可以要到一大把, 我就不记了, 主要是范型上下限问题. 案例: public class Test { public static class Base{ } public static class A extends Base{ } public static class

开发笔记1: 范型

ORM实现有反射.范型.代码生成等几种常见方式,或者单用,或者混合. c#的范型非常强大,应用于ORM时,可能有些特性显得更重要. 一开始实现时,我尝试写一下代码做为ORM基类 namespace Coat { public class ORMBase<T> where T : class { ... public bool Update() { using (var conn = OpenConnection()) { //Beblow compile error, because conn

java父类引用指向子类对象

父类引用指向子类对象指的是: 例如父类Animal,子类Cat,Dog.其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类. Animal animal = new Cat(); 即声明的是父类,实际指向的是子类的一个对象. 那这么使用的优点是什么,为什么要这么用?可以用这几个关键词来概括:多态.动态链接,向上转型 也有人说这是面向接口编程,可以降低程序的耦合性,即调用者不必关心调用的是哪个对象,只需要针对接口编程就可以了,被调用者对于调用者是完全透明的.让你更关

【转】父类引用指向子类对象

父类引用指向子类对象指的是: 例如父类Animal,子类Cat,Dog.其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类. Animal animal = new Cat(); 即声明的是父类,实际指向的是子类的一个对象. 那这么使用的优点是什么,为什么要这么用?可以用这几个关键词来概括:多态.动态链接,向上转型 也有人说这是面向接口编程,可以降低程序的耦合性,即调用者不必关心调用的是哪个对象,只需要针对接口编程就可以了,被调用者对于调用者是完全透明的.让你更关

Epplus下的一个将Excel转换成List的范型帮助类

因为前一段时间公司做项目的时候,用到了Excel导入和导出,然后自己找了个插件Epplus进行操作,自己将当时的一些代码抽离出来写了一个帮助类. 因为帮助类是在Epplus基础之上写的,项目需要引用Epplus.dll.自己基础不是很扎实,有问题的地方欢迎指导. 1.用法,默认excel第一列是头部信息. public class UserInfo : XlsRow { public int id { get; set; } public string username { get; set;

Swift快速入门之延迟调用与范型

defer defer 就像当于其它语言中的final代码块,它在函数中所有其它代码之后,函数返回之前运行.不论函数有没有抛出错误,它的代码都能运行.如下: var fridgeIsOpen = false let fridgeContent = ["milk", "eggs", "leftovers"] func fridgeContains(itemName: String ) -> Bool { fridgeIsOpen = true