gpt4 book ai didi

java - 在 Java 中声明变量时是否应该为其赋值?

转载 作者:行者123 更新时间:2023-12-02 03:31:45 25 4
gpt4 key购买 nike

我有一个包含以下行序列的代码:

Socket echoSocket = null;
... something ...
echoSocket = new Socket("taranis", 7);

我不明白为什么我们想要第一行。我知道 Java 无法根据变量的值来定义变量的类型。这就是为什么首先我们需要告诉 echoSocket 是一个具有 Socket 类型的变量(第一行),然后我们知道 echoSocket 有一个特定的值(Socket 类的对象)。

但是我不明白的是为什么我们需要赋值两次?为什么我们要说 echoSocket 等于 null?

最佳答案

我使用的一般原则是:尽可能晚地声明变量。

但是,有一种非常有用的情况不初始化变量:

String someString;
if (/* some condition */) {
someString = "foo";
} else {
someString = "bar";
}

因为 someString 在声明时已统一化,例如,如果 else 子句未设置值,Java 编译器会提示统一化值。如果您这样做,情况就不会是这样:

String someString = null;
if (/* some condition */) {
someString = "foo";
} else {
// do nothing
}

这是一次很好的健全性检查。上面不是编译错误,而是:

String someString;
if (/* some condition */) {
someString = "foo";
} else {
// do nothing
}

关于java - 在 Java 中声明变量时是否应该为其赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2303241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com