如何访问名为"类型"的Java对象的字段。来自斯卡拉

时间:2017-03-20 17:05:44

标签: scala interop

我已经存在一个用Java编写的类(假设这个类叫X),它包含一个名为type的字段/成员。

我现在想编写一个Scala类/对象,它创建一个X类型的对象并访问该对象的type成员。

然而,由于type是Scala中的关键字,因此无效。 Eclipse中的错误消息是:identifier expected but 'type' found.

问题:是否可以在不重命名的情况下访问该字段?

一个工作示例:

Java类:

public class X {
  public final int type = 0;
}

Scala App:

object Playground extends App {
  val x : X = new X();
  System.out.println(x.type); // This does not work!
}

2 个答案:

答案 0 :(得分:1)

您可以使用后退标记将保留字用作名称,例如type。有关更多信息,请参阅以前的问题: Is there a way to use "type" word as a variable name in Scala?

答案 1 :(得分:1)

使用反引号或定义一个gettter。

object Playground extends App {
  val x : X = new X();
  System.out.println(x.`type`)
}

或使用吸气剂,

public class X {
  public int type = 0;

  public int getType() {
    return type;
  }
}

object Playground extends App {
  val x : X = new X();
  System.out.println(x.getType());
}