J'ai quelques méthodes que je veux porter le même nom, et je déterminée en utilisant une surcharge être la solution probable. Le problème est, je ne peux pas le faire avec des conteneurs:Java conteneur surcharge
public void render(Vector2Obj<Double> display) {
g.drawImage(sprite, display.getX().intValue(), display.getY().intValue(), null);
}
public void render(Vector2Obj<Integer> display) {
g.drawImage(sprite,display.getX(), display.getY(), null);
}
L'erreur de syntaxe, il me donne est « choc de nom: les deux méthodes ont le même effacement ».
Mes deux questions sont:
Pourquoi ne java me laisser faire cela?
est-il une meilleure solution au que:
public void renderD(Vector2Obj<Double> display) { //notice the name change g.drawImage(sprite, display.getX().intValue(), display.getY().intValue(), null); } public void renderI(Vector2Obj<Integer> display) { //notice the name change g.drawImage(sprite,display.getX(), display.getY(), null); }
Ou en les séparant par nom?
« Ou en les séparant par nom? » Que fait d'autre 2? –
Vous pourriez avoir les surcharges 'render (int x, int y)' et 'render (double x, double x)'. –
Rien changeant juste à renderD ou renderI au lieu de simplement rendre –