当前位置: 首页 > 面试题库 >

您如何从Java调用Scala对象?

房光临
2023-03-14
问题内容

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上运行它,则它将不起作用-
最好避免)。

放在一边:

  1. 请确保在尝试运行代码时,在类路径中包含scala-library.jar。

  2. 不要忘记启动计时器-timer.start()

这段代码对我来说很好(Scala代码无需修改):

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


 类似资料:
  • 问题内容: 我试图将一些Scala代码注入到现有的Java应用程序中。(所以,话说回来,我想要更多的乐趣)。 我在Scala中创建一个单例的东西 现在,在OldJava.java中 我应该填写什么以便Java调用showMyPower方法?我尝试了两者 ,但没有任何效果。 (使用Jad反编译类文件,除了胡说八道之外,什么都没给我显示。) 编辑 我删除了声明,scala产生了预期的静态方法。(打电话

  • 问题内容: 目前,我仅有的信息是浏览器状态栏中的单行错误消息。 例如,您知道如何获取堆栈跟踪吗? 问题答案: 本文有点陈旧,但仍然有意义(包括标题为“如何在Java插件中调试小程序”的部分)。 编辑:获取堆栈跟踪的更好方法是使用Java插件控制台。如果您在该窗口中点击“ t”,则会看到以下内容: 打印出所有现有的线程组。显示的第一个组是主组。ac表示有效计数;它是线程组及其子线程组中活动线程的总数

  • 问题内容: 我有一个在CPython实现上运行的python程序,并且在其中必须调用在Java程序中定义的函数。我怎样才能做到这一点? 能够使用一些Java对象也将是一件很棒的事。 Jython不是一个选择。我必须在CPython中运行python部分。 问题答案: 最简单的事情是 为您的Java“函数”编写一个简单的CLI。(没有这样的东西,所以我假设您实际上是指Java类的方法功能。) 以此为

  • 问题内容: 如何从Java调用GraphViz,以及如何使用Java调用GraphViz函数?为了访问用于构建点图的GraphViz库,必须包含哪些必需的jar文件?是否有用于生成点图的示例程序 问题答案: 检查此 API,它很简单,并且具有几种输出格式(即pdf gif ..etc)。 编辑2016年5月: 许多人评论说该API不再可用;这里是其源代码: 首先,您需要创建并复制以下文件,然后粘贴

  • 问题内容: 我有一个想从Java使用的Perl模块。是否可以使用Windows上的ActiveState Perl或Linux随附的通用Perl来调用此代码?我找到了对JPL的引用,但似乎不再维护了。 问题答案: Inline-Java是从Perl调用Java的常用库,因此本文提出了 org.perl.java 模块,该模块应允许按要求从Java调用Perl。 但是,由于不同的JVM的JNI实现的

  • 问题内容: 我需要从我的C ++程序中运行以下行: java -jar test.jar text1 text2 Java应用程序将给出一个float值并将其提供给c ++程序。 我怎样才能做到这一点?我从未从ms visual studio C ++文件中调用过Java东西。 问题答案: 当我直接在命令提示符下运行java命令时,它可以工作。但是当我从c ++文件运行命令时,错误显示“系统无法执