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

创建数组的NullPointerException?

壤驷华辉
2023-03-14
object Main extends java.lang.Object with ScalaObject with App {
    override val args:Array[String]=Array(args.toList.headOption.getOrElse("f"))
    println("args(0) = " + args(0))
}

共有1个答案

东门楚
2023-03-14

正如@blast_hardcheese所示,您不能有效地将val的值设置为依赖于其本身的表达式,这就是上面代码中发生的情况。

如果确实需要这样做(我想不出为什么要这样做),可以通过在原始值的引用前面追加super.来引用原始值:

object Main extends App {
    override val args: Array[String] = if (super.args.isEmpty) Array("f") else super.args
    println("args(0) = " + args(0))
}

请注意,原始表达式将丢失除第一个参数之外的所有参数。这可能是你的意图,但如果不是,你会想把它改成上面这样的东西。

 类似资料:
  • 原文:Array creation 另见: 数组创建例程 导言 数组创建的一般机制有五种: 从其它Python的结构转换(如列表和元组) 内置的NumPy数组创建对象(如 arange, ones, zeros以及其它) 从磁盘中读取标准或自定义格式的数据 通过使用字符串或者缓冲区,从原始的字节创建数组 使用特殊的库函数(比如random) 本节不会涉及复制和连接等扩展和转换现有数组的方法,也不会

  • 我有以下代码,运行时会出现错误:TypeError:无法读取未定义的属性“split” 您可以在这里运行它。 我有数组,我想将它转换为数组的数组,首先在处拆分以分离数组,然后在处拆分以创建数组中的项。因此此列表将如下所示: [[data1,data2,data3],[data4,data5,data6],[data7,data8,data9]] 执行类似的操作,但当我尝试使用访问它时,它只给我第一

  • 我想使用简单的Jdbc插入类和执行批处理方法 http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/simple/SimpleJdbcInsert.html 所以我需要传递一个< code>Map数组 这是错误:无法创建 Map 的通用数组

  • 问题内容: 我想使用simpleJdbcInsert类和executeBatch方法 http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/simple/SimpleJdbcInsert.html 所以我需要传递一个as参数数组。如何创建这样的数组?我试过的是 错误:无法创建通用数组 A

  • 主要内容:numpy.empty(),numpy.zeros(),numpy.ones(),numpy.asarray(),numpy.frombuffer(),numpy.fromiter()在《 NumPy Ndarray对象》一节,介绍了创建 ndarray 数组的基本方法,除了使用 array() 方法外,NumPy 还提供了其他创建 ndarray 数组的方法。本节对这些常用方法做简单介绍。 numpy.empty() numpy.empty() 创建未初始化的数组,可以指定创建数组的

  • 它创建指定形状和dtype的未初始化数组。 它使用以下构造函数: 构造器接受下列参数: 下面的代码展示空数组的例子: import numpy as np x = np.empty([3,2], dtype = int) print x 输出如下: [1818321759 1885959276] [16779776 156368896]] 返回特定大小,以 0 填充的新数组。 构造