L'appel de méthode statique d'une classe?
Dire, j'ai une référence à un objet de Classe avec SomeType avoir une méthode statique. Est-il un moyen pour appeler cette méthode w/o de l'instanciation SomeType en premier? De préférence, ne pas échapper à taper fort.
EDIT: OK, j'ai merdé.
interface Int{
void someMethod();
}
class ImplOne implements Int{
public void someMethod() {
//do something
}
}
Class<? extends Int> getInt(){
return ImplOne.class;
}
Dans ce cas someMethod() ne peut pas être statique, de toute façon.
Je pense que cette question est à propos de Java réflexion, mais ce n'est pas vraiment clair.
Hmm, je ne pense pas.
Je ne vois pas de méthodes statiques - drôle ouais !
Hmm, je ne pense pas.
Je ne vois pas de méthodes statiques - drôle ouais !
OriginalL'auteur yanchenko | 2009-06-02
Vous devez vous connecter pour publier un commentaire.
Une méthode statique, par définition, est appelé sur une classe, et non pas sur une instance de cette classe.
Donc si vous l'utilisez:
vous êtes l'instanciation de rien (laissez de côté le chargement des classes et instanciation de la
SomeClass
classe elle-même, que la JVM poignées et est de sortir de votre champ d'application).C'est par opposition à une méthode appelée sur un objet qui a déjà été instancié:
Je pense que le compilateur de Sun lui-même les enjeux de cette mise en garde, aussi, maintenant. Je crois que c'est assez déroutant qu'il doit être fait une erreur: stackoverflow.com/questions/610458/...
OriginalL'auteur Yuval Adam
Je ne sais pas exactement quelle est la situation, mais si vous êtes à la recherche d'exécuter la méthode statique d'une classe sans connaître le type de classe (c'est à dire que vous ne savez pas c'est SomeType, vous avez juste demandez à la Classe de l'objet), si vous connaissez le nom et les paramètres de la méthode, vous pouvez utiliser la réflexion et de faire cela:
OriginalL'auteur Alex Beardsley
Puisque vous parler d'un objet de Classe, je suppose que vous êtes intéressé dans la réflexion Java. Voici un bref extrait de code qui fait ce que vous essayez de faire:
OriginalL'auteur JSBձոգչ
Oui. C'est ce que des méthodes statiques. Il vous suffit d'appeler. SomeType.yourStaticMethodHere().
OriginalL'auteur Carl Manaster