Scala 从另一个类获取局部变量

2024-04-14

早上好,我有一个名为 Application 的类,它有一个不能更改的 def 并返回一个 int,在它内部我定义了一个局部变量的路径,从另一个名为 App 的类扩展到 Application 类,我怎样才能得到那个变量是局部的吗?我尝试在块外分配一个变量,但它的值为空。非常感谢你对我的帮助。

...

class App extends Application {
    println("Inside of APP")  
    println(mypath)  
}

class Application {
    var mypath: String = _
    def functionname() : Int = { 
        var exitCode = 0

        val localPath: String = "C:/path"
        mypath = localPath
        println(localPath)

        exitCode
    }
    println(mypath)
}

object HelloWorld {
    def main(args: Array[String]): Unit = {
        val origin = new Application() 
        println(origin.functionname)
    }
}

输出是:

null  -->  //This is value of myPath outside block (KO)
C:/path  ->  //This is value of Local Variable (OK)
0 --> is OK
the println of the App class is not show (KO)

我编辑了代码以更好地解释它,你只能制作 val origin = new Application() 的实例,因为程序允许你做一个,现在我不知道该怎么做是 App 类可以获取类 Application 的本地值,但我没有获取值并且它不显示 println("Inside of APP")

    class App extends Application {
    println("Inside of APP")
    val app = new App()
    app.functionname()
    println(app.mypath)

    }

   class Application {
     var mypath: String = _

     def functionname(): Int = {
       val exitCode = 0
       val localPath: String = "C:/path"
       mypath = localPath
       println(mypath)
       exitCode
      }

      println(mypath)
      }


     object HelloWorld {
        def main(args: Array[String]): Unit = {
           val origin = new Application()
           println(origin.functionname())
           println("===========")
           println(origin.mypath)



             }
           }

...


您确实重新分配了var mypath,但你可能错过了这一点,因为println里面的声明Application当您实例化类时,在初始化时调用的类Application with new。你的第一条输出线是null因为这是未初始化的默认值String.

类定义中编写的任何不是字段或方法的语句(例如您的println语句)将被移动到该类的主构造函数内。因此,您的println在调用方法之前调用语句functionname, 因此mypath is null在那时候。

您看不到任何输出class App因为你从来没有在代码中实例化它。你当然可以这样做,但既然App你会实例化一个不同的实例mypath比 中的那个Application您之前实例化的类,mypath仍将是null在班上Application。 您需要的是一种计算值的方法var maypath of App,您只需致电即可做到这一点functioname on the App您刚刚实例化的对象,因为App也继承了它。

这是更新后的示例:

class App extends Application {
  println("Inside of APP")
  println(mypath)
}

class Application {
  var mypath: String = _

  def functionname(): Int = {
    val exitCode = 0
    val localPath: String = "C:/path"
    mypath = localPath
    println(localPath)
    exitCode
  }

  println(mypath)
}


object HelloWorld {
  def main(args: Array[String]): Unit = {
    val origin = new Application()
    println(origin.functionname())
    println("===========")
    println(origin.mypath)

    val app = new App()
    app.functionname()
    println(app.mypath)

  }
}

Outputs:

null
C:/path
0
===========
C:/path
null
Inside of APP
null
C:/path
C:/path
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scala 从另一个类获取局部变量 的相关文章

  • .java 和 .scala 类之间是否可能存在循环依赖?

    假设我在 java 文件中定义了类 A 在 scala 文件中定义了类 B A 类使用 B 类 B 类使用 A 类 如果我使用 java 编译器 则会出现编译错误 因为 B 类尚未编译 如果我使用scala编译器A类将找不到 有没有可以同时
  • 映射存在类型列表

    我有一个要映射的存在类型对象的列表 像这样的东西 sealed abstract class IntBox val v Int case object IB1 extends IntBox 1 case object IB2 extends
  • 如何从spark管道逻辑模型中提取变量权重?

    我目前正在尝试学习 Spark Pipeline Spark 1 6 0 我将数据集 训练和测试 导入为 oas sql DataFrame 对象 执行以下代码后 生成的模型是oas ml tuning CrossValidatorMode
  • 如何设计具有相互依赖的测试的 Specs2 数据库测试?

    有没有一些首选的方法来设计Specs2 http etorreborre github com specs2 测试 有很多测试取决于之前测试的结果 下面 您将找到我当前的测试套件 我不喜欢var位于测试片段之间 不过 它们是 需要的 因为某
  • 清理 IntelliJ 中构建的 Play 框架

    我有一个拼写错误conf routes文件导致 Play Framework 生成错误命名的类 重建项目并运行Invalidate Caches并没有解决 IntelliJ 中的问题 当我手动运行时重新生成了不正确的类文件play clea
  • Spark:出现心跳错误后丢失数据

    我有一个在 Spark 集群上运行的 Python 程序 有四个工作线程 它处理一个包含大约 1500 万条记录的巨大 Oracle 表 检查结果后发现大约有600万条记录没有插入 我的写入功能如下 df write format jdbc
  • 如何以最佳方式传递元组参数?

    如何以最佳方式传递元组参数 Example def foo Int Int def bar a Int b Int 现在我想传递的输出foo to bar 这可以通过以下方式实现 val fooResult foo bar fooResul
  • Spark日期格式问题

    我在火花日期格式中观察到奇怪的行为 实际上我需要转换日期yy to yyyy 日期转换后 日期应为 20yy 我尝试过如下 2040年后失败 import org apache spark sql functions val df Seq
  • Akka Stream Graph 恢复问题

    我创建了一个图表来并行化具有相同输入的两个流 这些流产生 Future Option Entity 如果 flowA 失败 我想返回 Future None 但恢复似乎没有被调用 val graph Flow Input Future Op
  • Scala 宏的位置怎么了?

    我试图获取宏参数的原始输入字符串 但返回的位置似乎有点偏离 考虑这个宏 例如 object M import scala reflect macros Context import language experimental macros
  • Scala 的代码覆盖率工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 具有上限的联合类型

    我正在遵循这个问题的公认答案中提出的技术如何定义 类型析取 联合类型 https stackoverflow com questions 3508077 does scala have type disjunction union type
  • 在 Spark MLlib 上使用 Java 中的 Breeze

    在尝试从Java使用MLlib时 使用微风矩阵运算的正确方法是什么 例如scala 中的乘法很简单 matrix vector 相应的功能在Java中是如何表达的 有一些方法 例如 colon times 可以通过正确的方式调用 breez
  • 如何使用 Spark 2 屏蔽列?

    我有一些表 我需要屏蔽其中的一些列 要屏蔽的列因表而异 我正在读取这些列application conf file 例如 对于员工表如下所示 id name age address 1 abcd 21 India 2 qazx 42 Ger
  • Spark:如何使用crossJoin

    我有两个数据框 df1有 100000 行并且df2有 10000 行 我想创建一个df3这是两者的交叉连接 val df3 df1 crossJoin df2 这将产生 10 亿行 尝试在本地运行它 但似乎需要很长时间 您认为本地可以实现
  • 在 Scala 中将元素追加到列表末尾

    我无法添加 type 元素T到一个列表中List T 我尝试过myList myElement但它似乎创建了一个奇怪的对象并访问myList last始终返回放入列表中的第一个元素 我怎么解决这个问题 List 1 2 3 4 Result
  • Java 8 Stream,获取头部和尾部

    Java 8 引入了Stream http download java net jdk8 docs api java util stream Stream html类似于 Scala 的类Stream http www scala lang
  • Akka-Streams 收集数据(Source -> Flow -> Flow (collect) -> Sink)

    我对 Scala 和 Akka 完全陌生 我有一个简单的 RunnableFlow Source gt Flow do some transformation gt Sink runForeach 现在我想要这样的东西 Source gt
  • scala 提供类似 C++ 模板的东西吗?

    我来自 C 并试图了解 scala 的类型系统 考虑以下 C 模板类 template
  • Akka-Http 2.4.9 抛出 java.lang.NoClassDefFoundError: akka/actor/ActorRefFactory 异常

    我正在尝试使用 Akka http 构建一个简单的 Web 服务 我遵循了这个指南 http doc akka io docs akka 2 4 9 scala http low level server side api html htt

随机推荐

  • java.lang.NoSuchMethodError:没有静态方法 getDrawable(Landroid/content/Context;I)

    正在将 Socialize SDK 集成到我的应用程序中 我还将 Android Studio 更新到了 2 3 3 我的 Activity 的 super onCreate savedInstanceState 给了我一个错误 这里也提出
  • malloc(0) 的行为

    int main char p p char malloc sizeof char 0 printf Hello Enter the data without spaces n scanf s p printf The entered st
  • 如何在 Java 中定义重复的枚举常量?

    我想定义一个具有两个 值 相同的常量的枚举类型 我将这两个常量称为重复项 考虑以下示例 我想要定义一个浏览器类型列表 并且想要同时拥有文字 IE 和 InternetExplorer 如下所示 enum Browser CHROME chr
  • 关闭SKScene后,内存仍然居高不下

    我使用dispatch onceNSObject创建数据指针 因此 当主视图控制器出现时 所有游戏资源指针都会被创建 为了玩游戏 用户点击UIButton对应于某个特定级别UI视图控制器 让我称之为 LevelSelectionContro
  • AXML 和 XAML 之间的区别?

    我是 Visual Studio Xamarin 跨平台移动开发的新手 我一直在搜索 AXML 但我找不到任何设计和应用 MVC 方法的教程 实际上我对此有很多疑问 但我先把这 3 留在这里 他们有什么区别 xaml设计可以应用在axml中
  • 使用 psycopg cur.execute 创建 postgres 模式

    我的 python 应用程序允许用户创建其命名模式 我需要一种方法来保护应用程序免受 SQL 注入 要执行的SQL读取 CREATE SCHEMA schema name AUTHORIZATION user name psycopg 文档
  • PHP 正则表达式生成器

    我现在已经获得了满足以下所需条件的有效正则表达式字符串 一行 php 就绪正则表达式 包含许多关键字和关键术语 并且至少匹配其中一个 例如 关键术语 apple banana strawberry pear cake 现在 如果找到任何这些
  • git、mercurial、bazaar 源代码库的可理解性

    我想阅读一种流行的版本控制工具的源代码 以了解版本控制的工作原理 我想读一本最具可读性的书 我不知道对此有什么客观 定量的衡量标准 所以本着WTF 分钟漫画 http www osnews com story 19266 WTFs m 想请
  • 内容提供商中 Android 投影图的用途是什么?

    我正在查看 Android 记事本应用程序示例代码
  • Firefox Web 扩展“无法访问死对象”错误

    我很难找到这个问题的最新答案 并且经常没有时间在这里回答问题 所以我想我会发布这个 这样我就可以回答我自己的问题 因为我找到了解决方案 我正在为 Chrome 和 Firefox 制作一个 Web 扩展 Firefox 有一个问题 当我从选
  • 跨浏览器选项卡共享 websocket?

    我们希望每个浏览器都有一个套接字 而不是浏览器中的每个选项卡都有一个套接字 我们怎样才能实现它呢 我读到了有关共享网络工作者的文章 这很有前途 对此的参考也值得赞赏 不幸的是 据我所知 共享网络工作者尚未被 Mozilla 或 Intern
  • 在非托管 CDI Bean 中引用 CDI Bean

    是否可以在使用创建的类中获取 CDI bean 的实例new关键词 我们目前正在对旧应用程序进行一些增强 并且我们总是会得到上下文不活跃异常 http docs jboss org cdi api 1 0 javax enterprise
  • 如何在 Xamarin iOS 中绘制文本?

    我想在给定点 x y 处绘制文本Draw自定义的方法View 我已关注这个样本 https developer xamarin com recipes ios graphics and drawing core text draw unic
  • 如何在CKEditor 4中设置默认字体和字体大小

    我使用以下代码在 CKEditor 4 中设置默认字体和字体大小 config font defaultLabel Tahoma config fontSize defaultLabel 24px 但上面的代码在 Mozilla Firef
  • php 中转义引号的意义是什么

    这是我正在学习的一本书中的验证脚本 为什么需要转义引号 例如
  • 在 PHP 中对逗号分隔值列表运行选择

    我在数据库上运行选择查询时遇到一些问题 一些数据以逗号分隔值的列表形式保存 例如 Table example tbl Id People Children 1 1 2 3 8 10 3 2 7 6 12 18 19 2 我正在尝试运行的示例
  • SQL Server 2008 - 按带有数字的字符串排序

    我的表中有以下值 ABC ABC1 ABC2 ABC3 and so on ABC11 ABC12 ABC13 and so on ABC20 ABC21 ABC22 and so on 所以基本上我拥有的是任何字符串值 并不总是 ABC
  • Spark 结构化流 - 从嵌套目录读取文件

    我有一个客户端将 CSV 文件放置在嵌套目录中 如下所示 我需要实时读取这些文件 我正在尝试使用 Spark 结构化流来做到这一点 Data user data 1 csv user data 2 csv user data 3 csv u
  • 无法将证书添加到 alpine linux 容器

    我在 alpine linux 容器内有一个小型 python 应用程序 这是 dockerfile FROM alpine basic flask environment RUN apk add no cache bash git ngi
  • Scala 从另一个类获取局部变量

    早上好 我有一个名为 Application 的类 它有一个不能更改的 def 并返回一个 int 在它内部我定义了一个局部变量的路径 从另一个名为 App 的类扩展到 Application 类 我怎样才能得到那个变量是局部的吗 我尝试在