Java 重写函数中的抽象
我想为send()添加一个额外的参数 在DumpSequence.java中:Java 重写函数中的抽象,java,Java,我想为send()添加一个额外的参数 在DumpSequence.java中: private static Receiver sm_receiver = new DumpReceiver(System.out, true); sm_receiver.send(message, lTicks); (Work) sm_receiver.send(message, lTicks, addParam1); (Won't work) dumnreceiver.java我试图添加额外的参数,它是lTi
private static Receiver sm_receiver = new DumpReceiver(System.out, true);
sm_receiver.send(message, lTicks); (Work)
sm_receiver.send(message, lTicks, addParam1); (Won't work)
dumnreceiver.java我试图添加额外的参数,它是lTimeStamp2:
public void send(MidiMessage message, long lTimeStamp, long lTimeStamp2) {...}
错误:
DumpSequence.java:136: send(javax.sound.midi.MidiMessage,long) in javax.sound.mi
di.Receiver cannot be applied to (javax.sound.midi.MidiMessage,long,long)
sm_receiver.send(message, lTicks, lTicks);
^
.\DumpReceiver.java:21: DumpReceiver is not abstract and does not override abstr
act method send(javax.sound.midi.MidiMessage,long) in javax.sound.midi.Receiver
public class DumpReceiver
^
2 errors
如果您扩展一个抽象类,它需要定义所有的抽象方法,或者它需要是抽象类 或者,如果您正在重载方法,则只需删除
@Override
注释即可
另请参见
@Override
注释即可
另请参见
send(MidiMessage message,long-lTimeStamp,long-lTimeStamp 2)
则需要使用DumpReceiver
实例,而不是Receiver
实例。“接收器”中没有这种方法
private static DumpReceiver sm_receiver = new DumpReceiver(System.out, true);
编辑:通过继承,您仍然可以将其用作普通的
接收器
对象。如果您想调用发送(MidiMessage message,long lTimeStamp,long lTimeStamp 2)
您需要使用DumpReceiver
实例,而不是接收器
实例。“接收器”中没有这种方法
private static DumpReceiver sm_receiver = new DumpReceiver(System.out, true);
编辑:通过继承,您仍然可以将其用作普通的
接收器对象。从第21行删除@Override注释从第21行删除@Override注释您仍然需要实现发送(javax.sound.midi.MidiMessage,long)
,即使您不使用它-这是您实现的接口所必需的您仍然必须实现send(javax.sound.midi.MidiMessage,long)
,即使您不使用它-这是您实现的接口所必需的好吧,他没有这样要求。他想在send
方法中添加一个参数,并从sm\u receiver
调用它,一个receiver
variable@Serabe我稍后再看它…已经包含在答案中了,我没有使用任何“@重写注释”。然后把第一部分当作答案:我决定使用全局变量方法。他想在send
方法中添加一个参数,并从sm\u receiver
调用它,一个receiver
variable@Serabe我稍后再看它…已经包含在答案中了,我没有使用任何“重写注释”。然后把第一部分当作答案:我决定使用全局变量方法。我相信这是一个界面,不是抽象的。是否有方法将DumpSequence.java中的值传递给dumpreceiver.java?我知道Java没有读取全局变量的能力。您是否修改了正确的变量?此外,如果你发现自己这样做,这通常是一个坏主意(TM)。可能有一个变通方法可以使用,因此这不是必需的。是的,修改正确的变量。我对Java的知识有限,有一种方法可以使用两步方法,但对我来说不是很有效。还是同样的错误,我相信这是一个接口,不是抽象的。是否有方法将DumpSequence.java中的值传递给dumpreceiver.java?我知道Java没有读取全局变量的能力。您是否修改了正确的变量?此外,如果你发现自己这样做,这通常是一个坏主意(TM)。可能有一个变通方法可以使用,因此这不是必需的。是的,修改正确的变量。我对Java的知识有限,有一种方法可以使用两步方法,但对我来说效率不高。有没有一种方法可以将DumpSequence.Java中的值传递给dumpreceiver.Java?我知道Java没有读取全局变量的能力。有没有办法将DumpSequence.Java中的值传递给dumpreceiver.Java?我知道Java没有读取全局变量的能力。