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("子类");
    	}
    }
    
  • 相关阅读:
    html 时间区间选择功能
    Django 【settings】数据库设置
    Django forms 定制form字段
    避免js全局变量污染的方法
    js获取路由
    采用遍历的方法获取字符串a在字符串b中的位置
    vue 学习笔记
    Promise
    js常用JSON数据操作
    js 数组遍历方式
  • 原文地址:https://www.cnblogs.com/yintingting/p/6872735.html
Copyright © 2011-2022 走看看