2010-03-11 6 views
-3

en java est le nom d'une méthode une chaîne? pourquoi ou pourquoi pas?en Java est le nom d'une méthode une chaîne?

donc si j'ai quelque chose comme:

public static int METHODNAME (some parameters or not) 
{ 
something to do ; 
} 

est MethodName une chaîne?

+0

Vous voudrez peut-être élaborer un peu. –

+2

Je suppose que "le nom est-il stocké dans la mémoire sous forme de chaîne" – Bob

+0

pourquoi est-ce une mauvaise question? – David

Répondre

6

Non, c'est un symbole. Cependant, via reflection, vous pouvez rechercher la méthode en utilisant une version de chaîne de son nom si cela est utile.

+0

"c'est un symbole" - Pouvez-vous donner un lien de preuve? – Roman

3

Si vous demandez si vous pouvez faire: "nomMéthode"() ou $ commande() et faites-le exécuter la méthode nommée comme vous pouvez en PhP. La réponse est non.

Si vous demandez si le nom de méthode est stocké quelque part en tant que chaîne, la réponse est oui. Vous pouvez y accéder en utilisant la réflexion. Par exemple:

Method[] methods = Double.class.getMethods(); 
for(Method m : methods) { 
    System.out.println("Method: "+m.getName()); 
} 

En référence à votre modification. Non ce n'est pas une chaîne dans ce contexte.

1

Vous pouvez faire cela, David:

import java.lang.reflect.*; 

Class C = Class.forName("yourClass"); 
Method methods[] = C.getDeclaredMethods(); 
for (int i = 0; i < methods.length; i++) 
{ 
       Method m = methlist[i]; 
       System.out.println(m.getName()); 
} 

Et il finit par imprimer "MethodName," comme une chaîne, si MethodName était YourClass.

Questions connexes