您如何从Java调用Scala对象?
问题内容:
Java代码:
import javax.swing.Timer;
class Main {
public static void main(String args[]) {
MyListener myListener = new MyListener();
Timer timer = new Timer(1000, myListener);
timer.start();
while(timer.isRunning()) {
System.out.print(".");
}
}
}
Scala代码:
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class MyListener extends ActionListener {
override def actionPerformed(arg0: ActionEvent) {
println("Do something");
}
}
命令行:
scalac MyListener.scala
javac Main.java
java -cp /usr/share/java/scala-library.jar:. Main
问题答案:
我将从使用java.util.Timer开始,而不是从javax.swing.Timer开始。除非您使用GUI运行应用程序,否则swing计时器将不起作用(即,如果您在没有特殊命令行参数的情况下通过控制台在Linux上运行它,则它将不起作用-
最好避免)。
放在一边:
-
请确保在尝试运行代码时,在类路径中包含scala-library.jar。
-
不要忘记启动计时器-timer.start()
这段代码对我来说很好(Scala代码无需修改):
MyListener myListener = new MyListener();
Timer timer = new Timer(1000, myListener);
timer.start();
Thread.sleep(10000);