二楼说得比较准确,java在编译时期只检查语法错误,即在编译时期无法知道new String().getClass()的返回值是String.class,所以就不可以那样干了,还可以用一下方式搞一下!
package com.itcast.day01;
import java.lang.reflect.Constructor;
public class Test {
public static void main(String[] args) {
Class<String> cl = String.class;// 正确
String s2="asa";
Class<String> cl1 = (Class<String>) s2.getClass(); //在此进行强制转换!
Class<? extends String> cl2 = new String().getClass();// 只能这样
}
}
|