当前位置: 首页 > 知识库问答 >
问题:

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

白丁雨
2023-03-14

我有一个简单的内部类变量,如何在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)
  }
}

共有1个答案

越学文
2023-03-14

您可以简单地使用。member\u 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

如果你真的不需要Outer成为一个类,你可以将它定义为singleton,

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上工作,文件|无效缓存/重启...应该工作

 类似资料:
  • 问题内容: 如果我有一个内部类的实例,如何 从不在内部类中的代码 访问外部 类 ?我知道在内部类中,我可以用来获取外部类,但是我找不到任何外部方式来获取此类。 例如: 问题答案: 该类的字节码将包含一个名为type 的包作用域。这就是用Java实现非静态内部类的方式,因为在字节码级别上没有内部类的概念。 如果您确实愿意,您应该能够使用反射来读取该字段。我从来不需要这样做,因此最好更改设计以使其不再

  • 问题内容: 我一直在寻找是否有某种方法可以使用中的类,但我还没有找到任何文档或有关此主题的指南。 假设我创建了一个简单的类,其中使用的一些库,例如: 有没有可能在此类中使用此类? 太难了吗? 我必须创建一个文件吗? 有没有指导说明如何做到这一点? 顺便说一句,我也看了一下代码,感到有点迷茫,我无法出于自己的目的复制它们的功能。 问题答案: 是的,尽管不是很琐碎,但它是可能的。通常,您需要一个Jav

  • 问题内容: 是否可以从Java内部类中获取对它的引用? 即 问题答案: 您可以像这样访问外部类的实例:

  • 问题内容: 我正在使用Jersey宁静的Web服务。这是我的下面的代码 我的问题是,是否可以在此类中访问httpSession对象? 问题答案: 尝试:

  • 如何访问main方法中的匿名内部类对象。它给出了编译时错误,称“无法对非静态方法进行静态引用”。如果我将匿名内部类设置为静态,那么我可以访问我想访问的ut,而不必将其设置为静态。 怎么做。请帮帮忙。

  • 本文向大家介绍MongoDB中如何访问JSON数组的内部元素,包括了MongoDB中如何访问JSON数组的内部元素的使用技巧和注意事项,需要的朋友参考一下 要在MongoDB中访问JSON数组的内部元素,请使用点表示法。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是访问JSON数组内部元素的查询- 这将产生以下输出-