Invocation de méthode surchargée basée sur le type de paramètre
En Java, les méthodes polymorphes, appelées méthodes surchargées, permettent la définition de plusieurs méthodes avec le même nom mais types de paramètres distincts. La sélection de méthode, le processus de détermination de la méthode surchargée à invoquer, est basée sur le type statique des paramètres déclarés, et non sur leur type réel.
Considérez le code suivant :
interface Callee { void foo(Object o); void foo(String s); void foo(Integer i); } class CalleeImpl implements Callee { // Method implementations omitted for brevity } Callee callee = new CalleeImpl(); Object i = new Integer(12); Object s = "foobar"; Object o = new Object(); callee.foo(i); callee.foo(s); callee.foo(o);
Ceci le code imprime "foo(Object o)" trois fois, bien que les types réels des paramètres soient respectivement Integer, String et Object. En effet, Java utilise le typage statique, ce qui signifie que le type d'une variable est déterminé au moment de la compilation et reste constant tout au long de l'exécution du programme.
Pour surmonter cette limitation et invoquer des méthodes basées sur le type de paramètre réel, on peut envisagez d'utiliser la réflexion ou des génériques. Cependant, il est important de noter que de telles techniques introduisent une complexité supplémentaire et ne constituent pas toujours la solution la plus appropriée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!