我遇到了java和泛型类的问题.
给出以下代码
public class A {
public void n() {
System.out.println("In A");
}
}
public class B extends A {
@Override
public void n() {
System.out.println("In B");
super.n();
}
}
public class C {
public A m_a;
public <T extends A> C( Class<T> a ) {
try {
m_a = a.newInstance();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void print(){ m_a.n(); };
}
Run Code Online (Sandbox Code Playgroud)
我尝试实例化C类的对象,如下所示
C c = new C( B.class );
Run Code Online (Sandbox Code Playgroud)
但是得到以下错误:
java.lang.InstantiationException: testdbvsfile.Main$B
at java.lang.Class.newInstance(Unknown Source)
at testdbvsfile.Main$C.<init>(Main.java:63) …Run Code Online (Sandbox Code Playgroud)