java泛型T和class.getName一样吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java泛型T和class.getName一样吗?相关的知识,希望对你有一定的参考价值。
public abstract class BaseDaoImpl<T> implements BaseDao<T>
Class<T> clazz;
public BaseDaoImpl()
//获取当前new对象的直接父类泛型
ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
clazz = (Class<T>)pt.getActualTypeArguments()[0];
………………省略中间
拼接
String sql = "from"+clazz.getName()
和
sql = "from"+T
一样吗?
还有Class 是一个类,Class 类的实例表示正在运行的 Java 应用程序中的类和接口,而泛型T 也是一个类,但他本身不是Class对象
下面给出一个测试代码:
package ysw;
import java.util.*;
class Food
public class Test<T>
public void s(T t)
String s = ""+t;//泛型T 将调用对象的toString()方法,返回该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示 System.out.println(s);
Class<T> cl = (Class<T>) t.getClass();//让泛型赋给Class对象,
System.out.println(cl.getName());//调用Class的getName()方法,返回类名。
public static void main(String args[])
Test<Food> tf = new Test<Food>();
tf.s(new Food());
////
output:
ysw.Food@1eb2c1b
ysw.Food 参考技术A sql = "from"+T
能这样用?
javapoet添加泛型参数问题,怎么解决
参考技术A Java的泛型就是创建一个用类型作为参数的类。就象我们写类的方法一样,方法是这样的method(String str1,String str2 ),方法中参数str1、str2的值是可变的。而泛型也是一样的,定义泛型 一般用 T 表示. public <T> List<T> method(T t) 方法体 。它的参数 就是 T 一个类型,你传什么类型的对象,T就是什么类型。T将是 可变的类型。
以上是关于java泛型T和class.getName一样吗?的主要内容,如果未能解决你的问题,请参考以下文章