Adw*_*mar 6 java whitespace readability checkstyle code-readability
查看Checkstyle 文档中的GenericWhitespaceCheck,
左尖括号 (
<):
- 仅在通用方法定义中应以空格开头。
- 在方法名称或类型名称之前不应以空格开头。
- 在所有情况下都不应该跟有空格。
右尖括号 (
>):
- 在所有情况下都不应该以空格开头。
- 在几乎所有情况下都应该跟有空格,除了菱形运算符和方法名称之前。
我不确定我是否完全理解为什么后面<不应该跟一个空格以及为什么>前面不应该跟一个空格的原因。
换句话说,为什么Map<String>公约结束了Map < String >?
这仅仅是因为随着参数数量和深度的增加,没有空格的版本更具可读性。
比如,Map<String, List<String>>比,更易读Map < String, List < String > >?
另外作为一个一般问题,是否有一些存储库/指南可以解释 Checkstyle 约定背后的原因?
虽然我没有证据或研究作为我的理论的基础,但我的推理如下:
(一种语言哲学)基本原理可能是:
类型的参数化(泛型的主要作用)如 inMap<String, Object>属于类型名称,就像括号和参数属于方法名称一样。因此,向签名添加参数应该遵循一致的间距规则:参数化括号周围没有空格(无论是在泛型类型的参数定义中,还是在方法的参数定义中)。
因此,天使括号连贯地定义了“类型签名”,并且应该尽可能接近类型(语义和空间),这意味着没有空间应该解开这种关系。
从(干净代码)的角度来看,避免使用空格有明显的好处:
天使括号周围的空格反而会使它们被误读或误解为逻辑比较运算符。
| 归档时间: |
|
| 查看次数: |
661 次 |
| 最近记录: |