如何在Scala中实现Java“ @ Default.String”

时间:2018-11-17 12:18:31

标签: scala traits

我真的是scala的新手,最近想尝试将Java代码转换为scala,如下所示:

E/AndroidRuntime: FATAL EXCEPTION: main
    android.view.InflateException: Binary XML file line #61: Error inflating class <unknown>
        at android.view.LayoutInflater.createView(LayoutInflater.java:613)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396)

我的实现是:

public interface BB extends AA {
  @Default.String("./myfile")
  String getInputFile();
}

但是最后,当我调用 getInputFile 时,它始终为空... 有人可以帮忙吗? 谢谢。

1 个答案:

答案 0 :(得分:4)

您的方法定义缺少=,因此您要声明一个返回Unit的方法。 Scala约定不是为了简单的成员访问而添加get,并且您也可能会丢失{}。所以你的特质看起来像这样:

trait BB extends AA {
  def inputFile = """./myfile"""
}