在接口上使用.getclass()

Eri*_*rik 9 java

这可能是一个非常简单的问题.嘿,我是一名学生,对java很新,我正在学习明天的期中考试.我坚持的一个练习题是当你有类似的东西时会发生什么:

System.out.println(interface1.getClass().getName());

interface1已被宣布为interface1 = class1.我很确定它会打印"class1"而不是"interface1",因为interface1它不是一个类吗?但我不确定,因为问题还说如果它产生编译时错误,那就说出来.我们的教授以欺骗我们而闻名,一旦我回到测验并且仍然对我为什么错误的问题感到困惑.

G_H*_*G_H 12

这不是因为它是你得到的接口class1,而是因为getClass()它将解析为实例的运行时类.既然你已经创建了它class1,那就是运行时类型.不会给你一个编译时错误.

Class通过反射可以获得接口的对象.

或者,您可以通过class关键字更直接地访问该类:

String className = Runnable.class.getName();
Run Code Online (Sandbox Code Playgroud)