Scalaのインナークラスが外部クラスオブジェクトにバインドされ、Javaなどの外部クラス自体にバインドされない理由を理解できません。誰かがその背後にある論理を説明することはできますか? Scalaの開発者がInner Classをこのように定義したのはなぜですか?Scalaのインナークラスが外部クラスオブジェクトにバインドされている理由
Scalaでは内部クラスのようにまったく同じ意味を持ってJavaで
class Network
{
class Member()
{
val contacts = new ArrayBuffer[Member]
}
}
object checkInner extends App {
/// creating home network
val home = new Network
val father = new home.Member
val mom = new home.Member
val sister = new home.Member
father.contacts += mom
father.contacts += sister
// creating neighbour network
val neighbour = new Network
val uncle = new neighbour.Member
father.contacts += uncle (this will throw error -> type mismatch; found :
checkInner.neighbour.Member required: checkInner.home.Member)
** but it will work in Java **
}
Javaがまさにそのようなものだと分かりますか?唯一の違いは、Javaが静的内部クラスを含む静的メンバーをサポートしていることです。 – pedrofurla
あなたは正確に何を提案しようとしていますか?あなたはそれを詳しく教えてもらえますか?ありがとうございました – jack
私は1つの質問か尋ねたことがあり、声明を出しました。私はそれよりも明白にする方法を知らない。 – pedrofurla