インナークラスタイプを参照する:それは得るようなスカラ - Iは次のように、外側のコンストラクタでインナークラスタイプにアクセスしたい外側のクラスのコンストラクタ
// does not compile, MyInner now know from outer constructor
class MyOuter(private val mySet: Set[MyInner]) {
class MyInner(index: Int)
}
内部クラスは、(対象外)、非静的である必要があります外部クラスインスタンスのいくつかのフィールドにアクセスします。
以下のコードはコンパイルされますが、フィールドは変更可能です:
class MyOuter() {
class MyInner(index: Int)
private var mySet: Set[MyInner] = _
def this(_mySet: Set[MyInner]) {
this()
mySet = _mySet
}
これは、Javaコード下に合法であるとして、Scalaの固有のようです:あなたの助け
ためimport java.util.Set;
public class Outer {
private final Set<Inner> mySet;
public class Inner {
private final int index;
public Inner(int _index) {
index = _index;
}
}
public Outer(Set<Inner> _mySet) {
this.mySet = _mySet;
}
}
感謝
コンストラクタがあなたのものに関して定義された型の引数を取ることは意味がありません構築しようとしている。 – emilianogc
@emilianogcどのパターンをお勧めしますか? – ogen
あなたが達成しようとしていることがわかりません。 MyOuterのCTORに外部から新しいMyInnerをインスタンス化することはできません。 Javaの内部クラスでは、他の何かを意味します。 – Maxim