在 onEvent 的各种示例中,有时变量被声明为 final,有时则不是。
例如:
public void onEvent(final ValueEvent entry, final long sequence, final boolean onEndOfBatch)
反对
public void onEvent(ValueEvent entry, long sequence, boolean onEndOfBatch)
请我对final的原因和使用发表评论吗?
在 onEvent 的各种示例中,有时变量被声明为 final,有时则不是。
例如:
public void onEvent(final ValueEvent entry, final long sequence, final boolean onEndOfBatch)
反对
public void onEvent(ValueEvent entry, long sequence, boolean onEndOfBatch)
请我对final的原因和使用发表评论吗?
简短的回答是 LMAX 编码标准要求参数是final
,但这只是一个约定问题。
将 final 添加到参数仅意味着该方法无法更改基元的值或重新分配传递的对象的引用。有关最终的更多详细信息,请参见此处
许多人认为为参数分配新值是不好的做法,并会导致许多细微的错误。