我有一些方法,我想标记相同,我确定使用重载是可能的解决方案。问题是,我不能做到这一点与集装箱:Java容器超载
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);
}
它给我的语法错误是“名称冲突:两种方法都有相同的擦除”。
我的两个问题是:
为什么不是Java让我做到这一点?
是否有更好的解决比:
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); }
或通过名称将它们分开?
“或者通过名称将它们分开?” 2还在做什么? –
你可以让'render(int x,int y)'和'render(double x,double x)'重载。 –
没有什么只是改变它renderD或renderI而不是只是渲染 –