我很困惑:
private RenderingHints hints;
public void addRenderingHints(Map hints) {
hints.putAll(hints);
}
Map
和RenderingHints
都有putAll
个成员函数:
https://docs.oracle.com/javase/8/docs/api/java/awt/RenderingHints.html#putAll-java.util.Map-
https://docs.oracle.com/javase/8/docs/api/java/util/Map.html#putAll-java.util.Map-
我了解到本地参数可以影响实例变量。那么这部分代码做了什么(有用)?
答案 0 :(得分:4)
代码错了。目前,它添加了参数gsub
的元素本身,它们将不再做任何事情。
代码应为:
Map hint
区别在于使用public void addRenderingHints(Map hints) {
this.hints.putAll(hints);
}
时。使用this.hints
指的是类中的字段。
答案 1 :(得分:1)
它将参数引用的[difftool "codecompare"]
cmd = 'C:\\Program Files\\Devart\\Code Compare\\codecompare.exe' -W \"$LOCAL\" \"$REMOTE\"
renames = true
[diff]
tool = codecompare
guitool = codecompare
[mergetool "codecompare"]
cmd = 'C:\\Program Files\\Devart\\Code Compare\\codemerge.exe' -MF=\"$LOCAL\" -TF=\"$REMOTE\" -BF=\"$BASE\" -RF=\"$MERGED\"
trustExitCode = true
[mergetool]
keepBackup = false
[merge]
tool = codecompare
guitool = codecompare
的内容添加到自身。也就是说,它在参数上调用Map
,传入参数。实例成员根本不参与。
这不太可能是预期的。他们可能意味着:
putAll
在实例字段上调用this.hints.putAll(hints);
,传入参数。
这就是为什么有些Java lint工具和IDE可以选择要求用putAll
为实例字段和方法加前缀的一个原因,即使语言规范使它成为可选项(呃,当它们没有被遮蔽时)通过本地参数)。在任何情况下,希望任何体面的IDE都会警告您该参数正在影响实例字段。