我有一些方法,我想標記相同,我確定使用重載是可能的解決方案。問題是,我不能做到這一點與集裝箱: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而不是隻是渲染 –