我正在为java编写一个three.js并使用LWJGL作为后端。我正在使用three.js需要的所需方法扩展LWJGL,但我遇到了一个问题。
我需要为每个库覆盖Vector2f.set等等,因为我只需要这些方法返回自己的行为就像three.js一样。我尝试过以下操作:
@Override
public Vector2 set(float x, float y){
super.set(x,y);
return this;
}
Eclipse抱怨这两种方法不兼容。您是否允许覆盖void返回,如果不允许,我是否应该为此调用创建一个单独的方法名称?有没有办法完全覆盖超类方法并忽略它?
答案 0 :(得分:2)
您可以覆盖void方法,但必须使用其他void方法覆盖它们。重写方法的返回类型和参数类型需要与它们的重写方法兼容。
如果您可以选择这样做,我建议您使用ArrayList而不是矢量 - 矢量速度较慢,因为它会同步所有方法,这通常是过度的。
答案 1 :(得分:1)
如果你想要链接,你可能需要
public Vector2 modify(float x, float y) {
set(x, y);
return this;
}
很难用其他语言完美地模拟代码。