为什么Javac抱怨未初始化变量?

马库斯·莱昂:

对于此Java代码:

String var;
clazz.doSomething(var);

为什么编译器报告此错误:

变量“ var”可能尚未初始化

我认为所有变量或引用都已初始化为null为什么需要这样做:

String var = null;

??

迈克尔·迈尔斯(Michael Myers):

实例和类变量初始化为null(或0),但局部变量不初始化。

有关非常详细的说明,请参见JLS的§4.12.5,该说明基本上是相同的:

程序中的每个变量在使用值之前都必须具有一个值:

  • 每个类变量,实例变量或数组组件在创建时均使用默认值初始化:
    • [摘录所有默认值列表]
  • 每个方法参数都初始化为该方法的调用者提供的相应参数值。
  • 每个构造函数参数都初始化为由类实例创建表达式或显式构造函数调用提供的相应参数值。
  • 将异常处理程序参数初始化为表示异常的引发对象。
  • 在使用局部变量之前,必须通过初始化或赋值为局部变量显式地赋予一个值,该方式可以由编译器使用确定赋值规则进行验证。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么 Java 会抱怨一个未初始化的变量,即使导致它初始化的所有可能的路由都已处理?

来自分类Dev

为什么未初始化的constexpr变量不是常量?

来自分类Dev

为什么GCC不报告未初始化的变量?

来自分类Dev

为什么我收到“未初始化的变量”错误

来自分类Dev

为什么VS2013抱怨“使用未初始化的内存”?

来自分类Dev

为什么快速关闭抱怨没有初始化

来自分类Java

为什么我不能检查未初始化变量是否为null

来自分类Dev

为什么我的未初始化变量有效?

来自分类Dev

(为什么)使用未初始化变量的未定义行为?

来自分类Dev

为什么cppcheck工具找不到未初始化的变量?

来自分类Dev

为什么C允许使用未初始化的局部变量?

来自分类Java

为什么尝试打印未初始化的变量并不总是导致错误消息

来自分类Dev

为什么未初始化模板类的嵌入式静态变量?

来自分类Dev

为什么在此BEGIN中未正确初始化变量?

来自分类Dev

为什么我的全局extern lambda变量在运行时未初始化?

来自分类Dev

为什么未初始化的变量包含垃圾而不是'nil'?

来自分类Dev

为什么未初始化的变量不打印垃圾值?

来自分类Dev

为什么未初始化的指针变量作为字符串会导致错误?

来自分类Dev

为什么可以将未初始化的变量地址传递给函数的指针参数

来自分类Dev

为什么 Valgrind 不检测未初始化变量的使用?

来自分类Dev

为什么在Ruby中未初始化的实例变量返回nil,但是未初始化的类变量引发错误?

来自分类Dev

变量未初始化

来自分类Dev

为什么在循环中初始化数组时Rust编译器为什么会给出未初始化的变量错误?

来自分类Dev

为什么我的值未由初始化(参数化)构造函数初始化?

来自分类Dev

尝试使i = i * i时,为什么出现错误“使用未初始化的内存'i'”和“使用了未初始化的局部变量'i'”的错误

来自分类Dev

未初始化的数组变量发生了什么?

来自分类Dev

为什么 Clang 抱怨本地复合文字的“初始化元素不是编译时常量”?

来自分类Dev

Kotlin 属性未初始化,但为什么呢?

来自分类Dev

为什么收到错误“未初始化的常量SecureRandom?

Related 相关文章

  1. 1

    为什么 Java 会抱怨一个未初始化的变量,即使导致它初始化的所有可能的路由都已处理?

  2. 2

    为什么未初始化的constexpr变量不是常量?

  3. 3

    为什么GCC不报告未初始化的变量?

  4. 4

    为什么我收到“未初始化的变量”错误

  5. 5

    为什么VS2013抱怨“使用未初始化的内存”?

  6. 6

    为什么快速关闭抱怨没有初始化

  7. 7

    为什么我不能检查未初始化变量是否为null

  8. 8

    为什么我的未初始化变量有效?

  9. 9

    (为什么)使用未初始化变量的未定义行为?

  10. 10

    为什么cppcheck工具找不到未初始化的变量?

  11. 11

    为什么C允许使用未初始化的局部变量?

  12. 12

    为什么尝试打印未初始化的变量并不总是导致错误消息

  13. 13

    为什么未初始化模板类的嵌入式静态变量?

  14. 14

    为什么在此BEGIN中未正确初始化变量?

  15. 15

    为什么我的全局extern lambda变量在运行时未初始化?

  16. 16

    为什么未初始化的变量包含垃圾而不是'nil'?

  17. 17

    为什么未初始化的变量不打印垃圾值?

  18. 18

    为什么未初始化的指针变量作为字符串会导致错误?

  19. 19

    为什么可以将未初始化的变量地址传递给函数的指针参数

  20. 20

    为什么 Valgrind 不检测未初始化变量的使用?

  21. 21

    为什么在Ruby中未初始化的实例变量返回nil,但是未初始化的类变量引发错误?

  22. 22

    变量未初始化

  23. 23

    为什么在循环中初始化数组时Rust编译器为什么会给出未初始化的变量错误?

  24. 24

    为什么我的值未由初始化(参数化)构造函数初始化?

  25. 25

    尝试使i = i * i时,为什么出现错误“使用未初始化的内存'i'”和“使用了未初始化的局部变量'i'”的错误

  26. 26

    未初始化的数组变量发生了什么?

  27. 27

    为什么 Clang 抱怨本地复合文字的“初始化元素不是编译时常量”?

  28. 28

    Kotlin 属性未初始化,但为什么呢?

  29. 29

    为什么收到错误“未初始化的常量SecureRandom?

热门标签

归档