为什么在Java中不捕获返回值是可以的?

为什么在Java中不捕获返回值是可以的?,java,return,stringbuilder,Java,Return,Stringbuilder,我写了一些小代码 StringBuilder sb = new StringBuilder(); sb.append("Hello"); System.out.println(sb); 方法的定义表示返回类型为StringBuilder public StringBuilder append(String str) 为什么它没有给出错误 谢谢。因为不需要将值保存到本地引用中。事实上,StringBuilder的大多数方法都会返回一个StringBuilder,以便可以链接调用 String

我写了一些小代码

StringBuilder sb = new StringBuilder();
sb.append("Hello");
System.out.println(sb);
方法的定义表示返回类型为StringBuilder

public StringBuilder append(String str)
为什么它没有给出错误


谢谢。

因为不需要将值保存到本地引用中。事实上,
StringBuilder
的大多数方法都会返回一个
StringBuilder
,以便可以链接调用

 StringBuilder sb = new StringBuilder();
 sb.append("Hello, World"); // <-- also returns the StringBuilder
 System.out.println(sb);
StringBuilder sb=新建StringBuilder();

某人附加(“你好,世界”);// 因为不需要将值保存到本地引用中。事实上,
StringBuilder
的大多数方法都会返回一个
StringBuilder
,以便可以链接调用

 StringBuilder sb = new StringBuilder();
 sb.append("Hello, World"); // <-- also returns the StringBuilder
 System.out.println(sb);
StringBuilder sb=新建StringBuilder();

某人附加(“你好,世界”);// 因为不需要将值保存到本地引用中。事实上,
StringBuilder
的大多数方法都会返回一个
StringBuilder
,以便可以链接调用

 StringBuilder sb = new StringBuilder();
 sb.append("Hello, World"); // <-- also returns the StringBuilder
 System.out.println(sb);
StringBuilder sb=新建StringBuilder();

某人附加(“你好,世界”);// 因为不需要将值保存到本地引用中。事实上,
StringBuilder
的大多数方法都会返回一个
StringBuilder
,以便可以链接调用

 StringBuilder sb = new StringBuilder();
 sb.append("Hello, World"); // <-- also returns the StringBuilder
 System.out.println(sb);
StringBuilder sb=新建StringBuilder();

某人附加(“你好,世界”);//它能被推广吗?我编写了一个返回int的方法。但是,我没有保存它。@JayPatel您需要知道可变状态和不可变状态之间的区别
StringBuilder
是可变的,这意味着,当您调用
append
时,它的内部状态会更新,并返回相同的
StringBuilder
实例,这样做是为了方便,并且更易于使用(因为您不需要反复键入
sb.append(…)
)。例如,
LocalDate
之类的内容是不可变的,当您调用它的一个mutator时,它会返回一个对象的新实例,并应用修改,使原始实例保持不变。@谢谢。。我明白了,可以推广吗?我编写了一个返回int的方法。但是,我没有保存它。@JayPatel您需要知道可变状态和不可变状态之间的区别
StringBuilder
是可变的,这意味着,当您调用
append
时,它的内部状态会更新,并返回相同的
StringBuilder
实例,这样做是为了方便,并且更易于使用(因为您不需要反复键入
sb.append(…)
)。例如,
LocalDate
之类的内容是不可变的,当您调用它的一个mutator时,它会返回一个对象的新实例,并应用修改,使原始实例保持不变。@谢谢。。我明白了,可以推广吗?我编写了一个返回int的方法。但是,我没有保存它。@JayPatel您需要知道可变状态和不可变状态之间的区别
StringBuilder
是可变的,这意味着,当您调用
append
时,它的内部状态会更新,并返回相同的
StringBuilder
实例,这样做是为了方便,并且更易于使用(因为您不需要反复键入
sb.append(…)
)。例如,
LocalDate
之类的内容是不可变的,当您调用它的一个mutator时,它会返回一个对象的新实例,并应用修改,使原始实例保持不变。@谢谢。。我明白了,可以推广吗?我编写了一个返回int的方法。但是,我没有保存它。@JayPatel您需要知道可变状态和不可变状态之间的区别
StringBuilder
是可变的,这意味着,当您调用
append
时,它的内部状态会更新,并返回相同的
StringBuilder
实例,这样做是为了方便,并且更易于使用(因为您不需要反复键入
sb.append(…)
)。例如,
LocalDate
之类的内容是不可变的,当您调用它的一个mutator时,它会返回一个对象的新实例,并应用修改,使原始实例保持不变。@谢谢。。我明白了。
StringBuilder
使用构建器模式,并且通常实现为允许您执行方法链接,因此您可以执行
StringBuilder sb=new StringBuilder().append(“Hello”)这将是合法的。不要与不可变类混淆,如
LocalDateTime
,您必须为其分配“可变”操作(如
plus
)的结果,该操作使原始实例保持不变,并返回一个应用了修改的新实例<代码>StringBuilder
是可变的,但提供了方便。您还可以完全自由地忽略任何喜欢的方法的结果
StringBuilder
使用生成器模式,并且通常实现为允许您执行方法链接,因此您可以执行
StringBuilder sb=new StringBuilder().append(“Hello”)这将是合法的。不要与不可变类混淆,如
LocalDateTime
,您必须为其分配“可变”操作(如
plus
)的结果,该操作使原始实例保持不变,并返回一个应用了修改的新实例<代码>StringBuilder
是可变的,但提供了方便。您还可以完全自由地忽略任何喜欢的方法的结果
StringBuilder
使用生成器模式,并且通常实现为允许您执行方法链接,因此您可以执行
StringBuilder sb=new StringBuilder().append(“Hello”)这将是合法的。不要与不可变类混淆,如
LocalDateTime
,您必须为其分配“可变”操作(如
plus
)的结果,该操作保持原始实例不变并返回