代码之家  ›  专栏  ›  技术社区  ›  Srinivas

如何在scala中访问内部类元素

  •  0
  • Srinivas  · 技术社区  · 8 年前

    我有一个简单的内部类变量,如何在scala中访问它?

    class Outer {
      class Inner {
        var x = 1
      }}
    
    
    object Main {
      def main(args: Array[String]): Unit = {
        val o = new Outer
        val i = new o.Inner
        println(i.x)
      }
    }
    

    enter image description here

    1 回复  |  直到 8 年前
        1
  •  1
  •   prayagupa soxunyi    8 年前

    你可以简单地使用 .member_name 访问scala中的变量。

    scala> class Outer {
            class Inner {
              var x = 1 //it can be val which is immutable
            }}
    defined class Outer
    
    scala> val o = new Outer
    o: Outer = Outer@358b0b42
    
    scala> val i = new o.Inner
    i: o.Inner = Outer$Inner@512f2c7d
    
    scala> i.x
    res13: Int = 1
    

    由于您的示例将x定义为可变的,因此可以更改 x ,

    scala> i.x = 100
    i.x: Int = 100
    
    scala> i.x
    res14: Int = 100
    

    https://scastie.scala-lang.org/prayagupd/C9k9an4ASdaISnohbYQBmA

    scala> object Outer {
         |             class Inner {
         |               var x = 1 //it can be val which is immutable
         |             }}
    defined object Outer
    

    然后,简单实例化内部和访问变量,

    scala> val inner = new Outer.Inner
    inner: Outer.Inner = Outer$Inner@4bcdd11
    
    scala> inner.x
    res2: Int = 1
    

    关于不使用intellij, File | Invalidate Caches/Restart... 应该有效

    推荐文章