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(); };
}
C c = new C( B.class );
但得到以下错误:
java.lang.InstantiationException: testdbvsfile.Main$B
at java.lang.Class.newInstance(Unknown Source)
at testdbvsfile.Main$C.<init>(Main.java:63)
at testdbvsfile.Main.main(Main.java:76)
Caused by: java.lang.NoSuchMethodException: testdbvsfile.Main$B.<init>()
at java.lang.Class.getConstructor0(Unknown Source)<br>
... 3 more
如何使其工作?
谢谢您的帮助。
顺便说一句:我正在使用JRE1.8.0_65
问题是您使用的是非静态内部类。这在堆栈跟踪中很明显,其中b
类的名称为main$b
,而在其声明中缺少static
。
非静态成员类的构造函数使用包含类实例的隐式参数。
使内部类静态化
可以解决这个问题。您还可以通过将A
、B
和C
类移出Main
类来解决这个问题。
我从以下链接实现了re运行失败的TestNG测试类的逻辑: 不幸的是,它使用“test”注释运行该方法,而不运行BeforeClass(@BeforeClass)和AfterClass(@AfterClass)方法。我试图研究ITestAnnotations的setDependsOnMethods和getDependsOnMethods方法,但没有成功。 有人知道如何让侦听器类同时运行Before
我正在尝试在Ubuntu14.04 LTS上使用Python2.7构建tensorflow,没有GPU。当我在终端上运行本教程中的以下命令时: 它说无法使用日志进行构建: 这是我的构建环境: OS:Ubuntu14.04 LTS 64位内存12Gib gcc版本:4.8.4 python版本:2.7.6 bazel版本:0.3.2 git版本的tensorflow源代码:v0。11.0rc0-15
我创建了新的Deploy-to-staging项目,并将其配置编辑如下: > 在构建中,选择从另一个项目复制工件选择项目工件 选择生成后操作 我怎么才能修好这个? 我的tomcat凭据位于[tomcat目录]/conf/tomcat-users.xml中,如下所示:
当我尝试生成Android build时,我在Unity Console中遇到以下错误: 到目前为止,我已经集成了移动社交,Facebook,Unipast,UnityIAP插件。在所有这些集成之后,Android build正确地导出了,但是最后我集成了FirebaseMessaging插件,然后在上面的错误开始了,我无法导出build。 在构建导出过程中,我已经解决了很多错误,但上面的错误描述
我一直在尝试调试这个错误,但没有成功。 本质上,我是通过我的应用程序联系外部应用程序的。连接建立良好,应用程序通过回调URL联系回我的应用程序,然后我需要向外部应用程序发送最终验证。最后一步由于SSLhandshajee异常而失败。 javax。网ssl。例外:太阳。安全验证器。ValidatorException:PKIX路径生成失败:sun。安全供应商。certpath。SunCertPath