En Java, peut apparaître une méthode / déclaration du constructeur dans une autre méthode / déclaration du constructeur?
-
12-10-2019 - |
Question
En Java, peut apparaître une méthode / déclaration du constructeur dans une autre méthode / déclaration du constructeur? Exemple:
void A() {
int B() { }
}
Je ne pense pas, mais j'aimerais être rassuré.
La solution
Non . il est compilable.
Autres conseils
Non, ce n'est pas possible. Pour référence: http://download.oracle.com/javase/tutorial/ java / javaOO / methods.html
Pas directement, mais vous peut avoir une méthode dans une classe dans une méthode:
class A {
void b() {
class C {
void d() {
}
}
}
}
Ceci est impossible en java. Cependant, cela peut atteindre par l'interface si le code devient complexe.
interface Block<T> {
void invoke(T arg);
}
class Utils {
public static <T> void forEach(Iterable<T> seq, Block<T> fct) {
for (T elm : seq)
fct.invoke(elm);
}
}
public class MyExample {
public static void main(String[] args) {
List<Integer> nums = Arrays.asList(1,2,3);
Block<Integer> print = new Block<Integer>() {
private String foo() { // foo is declared inside main method and within the block
return "foo";
}
public void invoke(Integer arg) {
print(foo() + "-" + arg);
}
};
Utils.forEach(nums,print);
}
}
Non, Java permet seulement une méthode à définir dans une classe, pas dans une autre méthode.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow