这是在一次面试中问我的问题,
Class类的用途是什么,如果我们在test.java文件中编写test.class,JVM如何解释。
Test.java
Class c = Test.class;请分享你的想法
发布于 2011-12-29 19:13:45
您可以随时使用Class类来获取与类相关的信息。例如,如果需要,如果类名为com.example.ZiggyTest2,则执行特定任务
示例
Implementation
void doSomeThingOnBasisOfClassName(Class c){
System.out.println(c.getCanonicalName());
if(c.getCanonicalName().equals("com.example.ZiggyTest2")){
System.out.println("Do some thing");
}
}在任何类中调用该方法
Class c = ZiggyTest2.class;
doSomeThingOnBasisOfClassName(c);发布于 2011-12-29 19:00:59
The java specification 15.8.2 Class Literals
类文字是一个表达式,它由类、接口、数组或基本类型的名称组成,后跟一个‘.’和token类。类文字的类型是Class。对于由当前实例的类的定义类加载器定义的命名类型(或void),它的计算结果为Class对象。
因此Test.class是类文字,JVM会将其计算为Class对象。您可以从Test类的Class对象中获取有关该类的信息(如方法、字段、注释等
https://stackoverflow.com/questions/8666952
复制相似问题