public class Test { public static void main(String[] args) throws ClassNotFoundException {
Class<Test> c=(Class<Test>)Class.forName("Test");
}
}[unchecked] 未经检查的类型使用
找到: java.lang.Class<capture#698 of ?>
需要: java.lang.Class<Test>
怎么写才能没有警告?
谢谢!
Class<Test> c=(Class<Test>)Class.forName("Test");
}
}[unchecked] 未经检查的类型使用
找到: java.lang.Class<capture#698 of ?>
需要: java.lang.Class<Test>
怎么写才能没有警告?
谢谢!
Class我用的是java.lang.Class类
public static Class<?> forName(String className)throws ClassNotFoundException
我开始的目的是为使用一个函数,返回值是Test
import java.lang.reflect.InvocationTargetException;public abstract class Test { protected String a; public Test(String a) {
this.a=a;
} public abstract void print(); /**
* 根据不同的Test子类名称来获得子类对象
*
* @param className 类名称 test 子类的名称 例如 Test1、Test2
* @param initString 初始化类的字符串
* @return Test的子类,如果是className=“Test1”返回Test1对象
* @throws ClassNotFoundException ClassNotFoundException
* @throws NoSuchMethodException NoSuchMethodException
* @throws IllegalAccessException IllegalAccessException
* @throws InstantiationException InstantiationException
* @throws java.lang.reflect.InvocationTargetException
* InvocationTargetException
*/
public static Test getTest(String className, String initString) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException {
Class<Test> c = (Class<Test>) Class.forName(className);
Constructor<Test> ct = c.getConstructor(String.class);
return ct.newInstance(initString);
} public static void main(String[] args) throws Exception {
Test a=getTest("Test1","15");
a.print();
}
}class Test1 extends Test {
Test1(String a) {
super(a);
} public void print() {
System.out.println("Test1 print : a="+this.a);
}
}class Test2 extends Test {
Test2(String a) {
super(a);
} public void print() {
System.out.println("Test2 print : a="+this.a);
}
}
这是程序[unchecked] 未经检查的类型使用
找到: java.lang.Class<capture#698 of ?>
需要: java.lang.Class<Test>
怎么写才能没有警告?
谢谢!
参照代码如下
@SuppressWarnings("unchecked")
public static <T> T typeCast(final Object src) {
T temp= (T) src;
return temp;
}