2016-06-13 20 views

Antwort

1

Foo.class gibt eine Instanz der Klasse Class<Foo> , so ist Foo.class.barMethod() nur gültig, wenn barMethod eine Instanzmethode in der Class Klasse (oder Object Superklasse) ist. Foo.barMethod() ruft eine statische Methode der Klasse Foo auf.

Es ist nicht wahrscheinlich, dass beide Zusammenstellung für eine bestimmte Foo Klasse und eine gegebenen barMethod Methode übergeben würde, es sei denn, Sie in den Foo Klasse statischen Methoden erklären die gleiche Signatur wie Instanzmethoden Class oder Object Klassen mit (was wahrscheinlich nicht macht viel Sinn).

0

Zwischen den beiden Idiomen besteht keinerlei Beziehung.

Die erste: Foo.class.barMethod() ruft eine Methode der Klasse Class, nämlich auf einem Class<Foo>.

Es wird für die Reflexion verwendet.

Daher wird Foo.class nicht zu Foo statische (oder Instanz) Methoden.

Die zweite ist einfach eine static Aufruf von barMethod auf Foo.

Verwandte Themen