java泛型T和class.getName一样吗? 10
1个回答
展开全部
不一样,第一个class.getName();是Class对象的一个方法,它会返回一个类名的字符串,而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
还有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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询