zoukankan      html  css  js  c++  java
  • 泛型真实类型

    把项目中的代码抽出父类,有时需要用泛型。如果此时涉及到hibernate等数据库操作,比如"select u from User u",那么User怎么怎么表示出来呢?以下是研究的代码:

    父类:

    import static org.junit.Assert.*;
    import java.lang.reflect.ParameterizedType;
    import java.lang.reflect.Type;
    import org.junit.Test;
    
    public class Father<T> {
    
    	public Father() {
    		// TODO Auto-generated constructor stub
    		System.out.println(this.getClass());//class mypss.children
    		System.out.println(this.getClass().getSuperclass());//mypss.Father
    		System.out.println(this.getClass().getGenericSuperclass());//mypss.Father<java.lang.Long> 带上了泛型
    		ParameterizedType parameterizedType = (ParameterizedType) this.getClass().getGenericSuperclass();
    		Type[] actualTypes = parameterizedType.getActualTypeArguments();
    		System.out.println(actualTypes[0]);//class java.lang.Long 真实的泛型类型,Long
    		Class<T> actualType = (Class<T>) actualTypes[0];
    		System.out.println(actualType);
    	}
    	
    }
    

     子类:

    package mypss;
    
    import static org.junit.Assert.*;
    
    import org.junit.Test;
    
    public class children extends Father<Long> {
    
    	@Test
    	public void testde() throws Exception {
    		System.out.println("子类");
    	}
    }
    
  • 相关阅读:
    Shiro权限验证
    5种设计模式整理
    多模块的SpringBoot项目
    Go使用数据库
    使用Go mod
    docker基本使用
    Go的IO操作
    实现一个网盘存储……
    Go的网络编程
    学习golang的历程
  • 原文地址:https://www.cnblogs.com/yintingting/p/6872735.html
Copyright © 2011-2022 走看看