不同于Foo.class.barMethod()和Foo.barMethod.()



我看到了以下语句:

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()仅在barMethodClass类(或其Object超类)中的实例方法时有效。Foo.barMethod()调用Foo类的静态方法。

除非在Foo类中声明与ClassObject类的实例方法具有相同签名的静态方法(这可能没有多大意义),否则两者都不太可能通过给定Foo类和给定barMethod方法的编译。

这两个习语之间没有任何关系。

第一个:Foo.class.barMethod()将调用类Class的方法,即在Class<Foo>上。

它是用来反射的。

因此,Foo.class不适用于Foo的静态(或实例)方法。

第二个简单地是FoobarMethodstatic调用。

最新更新