java - 未初始化的对象不为 null 并且在构造函数中返回

标签 java constructor null initialization return

我有两个关于 Java 的问题:

  1. 我知道未初始化的对象会自动分配 null 但此代码不起作用 -

    A a;        //A is some valid user-defined object  
    System.out.println(a != null);
    

    这会产生错误:错误:变量 a 可能尚未初始化
    这表明 a 不为空。那么,如何区分 null 和这些类型的变量呢?

  2. 我知道构造函数不返回任何值,甚至 void 也不返回,并且 return 返回 void,那么以下如何代码完美运行吗?

    A() {
        //...Some code
        return;        //Works perfectly even if it returns void from inside construtor
    }
    

最佳答案

从下次开始考虑一次只问一个问题。

I know that uninitialized object is automatically assigned null but this code doesn't work -

这适用于实例成员。不适用于局部变量。如果您的代码位于您应该考虑分配的方法内。

I know that constructor doesn't return any value not even void and return returns void, so how can the following code work perfectly?

只需一个简单的return;即可终止执行。它不会返回任何内容,并且这是有效的,就像 break; 语句一样。

关于java - 未初始化的对象不为 null 并且在构造函数中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48060615/

相关文章:

java - 方法参数必须是实现某个接口(interface)的某个类的obj

java - 如何用 PHP 或 Java 发送电子邮件

java - 将注释参数之一替换为 IntelliJ IDEA 的结构替换

c# - 在 C# 中使用反射检测编译器生成的默认构造函数

c++ - 在 ctor 的初始化列表中使用算术是否稳定?

C++ double* 数组,测试分配

javascript - 处理javascript空对象的简洁方法

android - 将图像从 fragment 传递到 Activity - 获取空对象

java - flatbuffers c++ 从缓冲区转换为对象仅适用于 root_type(而 java 拥有所有)

java - `NullPointerException` 由于 Autowiring 失败