gpt4 book ai didi

java - 为什么我不能增加返回值?

转载 作者:行者123 更新时间:2023-12-01 06:43:45 25 4
gpt4 key购买 nike

我注意到一个令人惊讶的行为。

可以这样写:

Integer integer = 0;
integer++;

但我不能这样写:

getInteger()++;

这是我的 getInteger() 方法:

public static Integer getInteger(){
return 0;
}

对我来说,两个片段看起来是一样的。

但是第二段代码返回错误:

unexpected type
getInteger()++;
^
required: variable
found: value

为什么禁止二次施工?

通常,我觉得被迫编写这样的“丑陋”代码:

obj.set(obj.get()+1);

看起来多余。

最佳答案

x++x + 1 不同。它是x += 1的缩写,即x = x + 1;先递增,后赋值。所以 getInteger()++ 意味着 getInteger() = getInteger() + 1,这是没有意义的。您是将一个值加一,而不是增加一个变量。

除此之外,++ 适用于 int,但不适用于 Integer,但即使您返回 int code> 您无法使用 ++ 来增加它:

class Test {
static public void main() {
getint()++;
}
static int getint() {
int a = 0;
return a;
}
}

给出

Test.java:3: error: unexpected type
getint()++;
^
required: variable
found: value

(在 C++ 中,您可以通过引用来完成这项工作,但 Java 没有这些。)

关于java - 为什么我不能增加返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24697627/

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