我看到了以下语句:
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("view/foo.fxml"));
有什么不同
Foo.class.barMethod() and Foo.barMethod()
Foo.class
返回Class<Foo>
类的实例,因此Foo.class.barMethod()
仅在barMethod
是Class
类(或其Object
超类)中的实例方法时有效。Foo.barMethod()
调用Foo
类的静态方法。
除非在Foo
类中声明与Class
或Object
类的实例方法具有相同签名的静态方法(这可能没有多大意义),否则两者都不太可能通过给定Foo
类和给定barMethod
方法的编译。
这两个习语之间没有任何关系。
第一个:Foo.class.barMethod()
将调用类Class
的方法,即在Class<Foo>
上。
它是用来反射的。
因此,Foo.class
不适用于Foo
的静态(或实例)方法。
第二个简单地是Foo
上barMethod
的static
调用。