我们可以通过3种方法获取类Class对象:
我不明白之间的差别:MyClass.class和Class.forName("className").
因为两者都需要Class Name.
swa*_*apy 11
Class.forName("className");
Run Code Online (Sandbox Code Playgroud)
forName是类"Class"的静态方法.我们需要提供所需类的完全限定名称.这可以在类的名称将在运行时获知时使用.
ClassName.class;
Run Code Online (Sandbox Code Playgroud)
.class不是一个关键字的方法,可以像int这样的基本类型使用.当Class的名称事先知道并且它被添加到项目中时,那时我们使用ClassName.class
我不明白之间的差别:
MyClass.class和Class.forName("className").因为两者都需要Class Name.
最大的区别在于他们何时需要它.由于Class.forName接受字符串,因此可以在运行时确定类名.当然,MyClass.class是在编译时确定的.这Class.forName对于根据配置动态加载类非常有用(例如,根据配置文件的设置加载数据库驱动程序).
四舍五入:obj.getClass()非常有用,因为您可能不知道对象的实际类 - 例如,在使用接口接受参数的方法中,而不是类,例如in foo(Map m).你不知道它的类m,只是它是实现的东西Map.(99%的时候,你不应该关心它的课程是什么,但偶尔会增加1%.)