Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:实例变量与局部参数_Java_Scope - Fatal编程技术网

Java:实例变量与局部参数

Java:实例变量与局部参数,java,scope,Java,Scope,我对此感到困惑: private RenderingHints hints; public void addRenderingHints(Map hints) { hints.putAll(hints); } (来自) Map和RenderingHints都有putAll成员函数: 我了解到局部参数可以隐藏实例变量。那么这部分代码的作用是什么(有用)?代码是错误的。目前,它本身添加了参数Map-hint的元素,结果什么也不做 代码应为: public void addRenderi

我对此感到困惑:

private RenderingHints hints;

public void addRenderingHints(Map hints) {
    hints.putAll(hints);
}
(来自)

Map
RenderingHints
都有
putAll
成员函数:


我了解到局部参数可以隐藏实例变量。那么这部分代码的作用是什么(有用)?

代码是错误的。目前,它本身添加了参数
Map-hint
的元素,结果什么也不做

代码应为:

public void addRenderingHints(Map hints) {
    this.hints.putAll(hints);
}

区别在于使用
this.hints时。使用
引用类中的字段。

代码错误。目前,它本身添加了参数
Map-hint
的元素,结果什么也不做

代码应为:

public void addRenderingHints(Map hints) {
    this.hints.putAll(hints);
}

区别在于使用
this.hints时。使用
引用类中的字段。

它将参数所引用的
映射
的内容添加到自身中。也就是说,它对参数调用
putAll
,将参数传入。实例成员根本不参与

这不太可能是本意。他们的意思可能是:

this.hints.putAll(hints);
实例字段上调用
putAll
,传递参数



这就是为什么一些Java lint工具和IDE有一个选项要求您在实例字段和方法前面加上
This.
,即使语言规范将其设置为可选的(呃,当它们不受本地参数的影响时)。在任何情况下,希望任何体面的IDE都会警告您该参数正在隐藏实例字段。

它会将参数所引用的
映射的内容添加到自身中。也就是说,它对参数调用
putAll
,将参数传入。实例成员根本不参与

这不太可能是本意。他们的意思可能是:

this.hints.putAll(hints);
实例字段上调用
putAll
,传递参数



这就是为什么一些Java lint工具和IDE有一个选项要求您在实例字段和方法前面加上
This.
,即使语言规范将其设置为可选的(呃,当它们不受本地参数的影响时)。在任何情况下,希望任何合适的IDE都会警告您,参数正在隐藏实例字段。

这是一个错误。这段代码并没有达到作者的目的,您可以将这段代码复制并粘贴到任何JavaIDE中,然后检查behaviour@bers:比那更糟。它改变了参数,这是个错误。这段代码并没有达到作者的目的,您可以将这段代码复制并粘贴到任何JavaIDE中,然后检查behaviour@bers:比那更糟。它改变了参数。