我试图将一些Scala代码注入到现有的Java应用程序中。(所以,话说回来,我想要更多的乐趣)。
我在Scala中创建一个单例的东西
ScalaPower.scala
package org.fun
class ScalaPower
object ScalaPower{
def showMyPower(time:Int) = {
(0 to time-1).mkString(", ")
}
}
现在,在OldJava.java中
class OldJava {
public void demo(){
System.out.println(?)
}
}
我应该填写什么?
以便Java调用showMyPower方法?我尝试了两者
org.fun.ScalaPower.showMyPower(10)
,org.fun.ScalaPower.getInstance().showMyPower(10)
但没有任何效果。
(使用Jad反编译类文件,除了胡说八道之外,什么都没给我显示。)
编辑 我删除了class ScalaPower
声明,scala产生了预期的静态方法。(呼吁org.fun.ScalaPower.showMyPower(10)
工作)。
想知道这是否是scala编译器中的错误
我认为这间接地涵盖了它:
伴侣对象和Java静态方法
关于伴随对象,还有另一件事要了解。每当您定义要用作应用程序入口点的主要方法时,Scala都会要求您将其放入对象中。但是,在撰写本文时,不能在同伴对象中定义主要方法。由于生成的代码中有实现细节,因此JVM找不到主要方法。以后的版本中可能会解决此问题。现在,您必须在单例对象(即“非同伴”对象)[ScalaTips]中定义任何主要方法。考虑以下尝试定义main的简单Person类和伴随对象的示例。
如在此处找到:http :
//programming-scala.labs.oreilly.com/ch06.html
简而言之,因为您的对象是一个伴随对象(具有伴随类),所以您不能像预期的那样调用它。如您所见,如果您摆脱了该类,它将起作用。
问题内容: 就像是 这是我想象的格式,但事实并非如此。什么会退回到对象的父级? 问题答案: JavaScript本身不提供此功能。而且我怀疑您是否可以创建这种类型的功能。例如: 鲍比属于谁?
带有同伴对象的简单示例类 值测试可以通过访问,但如何从MyClass的实例访问?如果我有,那么我如何从sample访问测试?不正确....有没有办法? Java,C++,python等都有很简单的解决方案...(我将为每个有帮助的is提供代码示例),我认为kotlin会有一个比使用Java更好的解决方案。 对于在没有对象实例(如工厂)的情况下访问类属性,kotlin companion objec
我正在尝试创建一个连接四的GUI。 我有一个类Gui,它创建了一个板(一个数组[][]ints)和一个方法move,它接受player(int)和column(int)以及一个检查是否有赢家的方法。 我用gridLayout创建了一个gui,我有一行按钮和7个JLabel数组(这是一个空槽的ImageIcon)。如果玩家选择了一个特定数组的最下面的JLabel列,我现在需要访问该列。 我在一个循环
问题内容: 如何Foo从Java访问包对象中包含的对象? 问题答案: 也许从Scala 2.8.1开始,这已经发生了变化,但是该提议不起作用。您必须使用。 对于对象,方法等,它有所不同。考虑到scala类: 您可以访问foo,bar而baz在Java中,如: 当我试图弄清楚这一点时,我以为我们遇到了麻烦,因为Scala生成了一个名为的类,当然您不能在Java中导入该类。幸运的是,我们只需要pack
问题内容: 看一下这个例子: 如何从子对象中访问随机对象? 问题答案: 让类将自己的实例传递给该类。 经典Occam剃刀。
本文向大家介绍Java遍历对象可访问的对象(堆1.0),包括了Java遍历对象可访问的对象(堆1.0)的使用技巧和注意事项,需要的朋友参考一下 示例