Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在扩展Java类时实例化Scala中的嵌套类_Java_Scala - Fatal编程技术网

在扩展Java类时实例化Scala中的嵌套类

在扩展Java类时实例化Scala中的嵌套类,java,scala,Java,Scala,我有一个抽象java类,其中包含声明为受保护静态的嵌套类: public abstract class AbstractJavaClass { // contains nested class protected static class InnerClass { ... } } 当我试图像在java中一样在扩展AbstractJavaClass的Scala类中实例化它时(即,仅在方法new InnerClass中引用名称): 我得到错误:类型InnerClass不是Scala

我有一个抽象java类,其中包含声明为
受保护静态
的嵌套类:

public abstract class AbstractJavaClass {
  // contains nested class
  protected static class InnerClass {
  ...
  }
}
当我试图像在java中一样在扩展AbstractJavaClass的Scala类中实例化它时(即,仅在方法new InnerClass中引用名称):

我得到错误:类型InnerClass不是ScalaClass的成员。我做错了什么?同样的方法在java中也适用。

在这里结结巴巴地说:

上面说

This isn't possible in Scala. Since Scala has no notation of static you can't
access protected static members of a parent class. This is a known limitation.
虽然我无法解决最初的问题(当类是
受保护的静态
时),但当我在
抽象Java类
的定义中将其更改为
公共静态
时,我可以这样使用它:

class ScalaClass extends AbstractJavaClass {
  import AbstractJavaClass.InnerClass

  def method = new InnerClass
}
在不导入的情况下使用
new InnerClass
会产生相同的错误

class ScalaClass extends AbstractJavaClass {
  import AbstractJavaClass.InnerClass

  def method = new InnerClass
}