Подтвердить что ты не робот

Как вы называете Scala объекты из Java?

Код 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
4b9b3361

Ответ 1

Я бы начал с использования java.util.Timer - не javax.swing.Timer. Таймер качания не будет работать, если вы не используете приложение с графическим интерфейсом (т.е. Он не будет работать, если вы запустите его в Linux через консоль без специального параметра командной строки - лучше всего избегать).

Отметьте это:

  • Убедитесь, что при попытке запустить код вы включаете scala -library.jar в свой путь к классам.

  • Не забудьте запустить таймер - timer.start()

Этот код работал отлично для меня (код Scala не нуждался в модификации):

MyListener myListener = new MyListener();
Timer timer = new Timer(1000, myListener);
timer.start();
Thread.sleep(10000);