【问题标题】:Scala invoke in javaScala在java中调用
【发布时间】:2014-10-27 05:39:16
【问题描述】:

我在 java 中使用 scala 的 hello world 示例有问题。 这是我的 java 文件:

package com.adam.core;
import org.scala.*;

public class App {
    @SuppressWarnings("static-access")
    public static void main( String[] args ) {
        Hello a = new Hello();
        System.out.println(a.greeting());
    }
}

还有我的 scala 文件 Hello.scala:

package org.scala;

object Hello {
   val greeting: String = "Hello, world!"
}

我只将这个添加到我的 pom 中:

<dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>2.11.2</version>
</dependency>

我在 Eclipse 中使用带有所有 Scala 插件的 java 1.8。我将 Natural Scala 添加到项目中。

当我想运行 java 文件时出现错误:

Hello 无法解析为类型 在 com.adam.core.App.main(App.java:8)

我在 src/main/scala 和 src/main/java 中有这 2 个文件

请帮帮我!谷歌不能再帮我了:(

【问题讨论】:

  • 不起作用,无法从 Hello$ 类型对非静态方法 greeting() 进行静态引用。
  • Hello$.MODULE$.greeting ?
  • Hello$ 无法解决下一步该怎么办?

标签: java scala


【解决方案1】:

Scala object 不是你用 new 实例化的东西。

要么静态访问greetingHello.greeting(),任何地方都没有new Hello),要么将scala类型设置为class而不是object

【讨论】:

  • 当我使用 Hello.gretting 时出现错误:Hello 无法解析
猜你喜欢
  • 2011-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
相关资源
最近更新 更多