为什么Java库源代码如此奇怪地缩进?

时间:2011-09-14 20:03:07

标签: indentation java

我经常依赖JDK源代码来理解我应该如何实现一个接口,而且我经常会发现一些非常奇怪的缩进样式。例如,在DefaultCellEditor.java

public DefaultCellEditor(final JTextField textField) {
    editorComponent = textField;
this.clickCountToStart = 2;
    delegate = new EditorDelegate() {
        public void setValue(Object value) {
    textField.setText((value != null) ? value.toString() : "");
        }

    public Object getCellEditorValue() {
    return textField.getText();
    }
    };
textField.addActionListener(delegate);
}

我想知道这是否是由于我的IDE,因为我发现这种缩进很奇怪且难以阅读。

5 个答案:

答案 0 :(得分:4)

听起来像tab vs spaces问题。尝试将标签宽度设置为4个空格(如果为4则为8)。

以下是我在线浏览OpenJDK code for DefaultCellEditor时看到的内容。

enter image description here

答案 1 :(得分:3)

我怀疑您的IDE忽略或错误解释制表符。

答案 2 :(得分:3)

如果缩进在不同方法中是一致的,那么可能存在一些(不成文)的原因。

如果没有押韵或理由,则(a)编码器不关心缩进,或(b)编码器确实关心,并且在您的计算机途中发生了一些事情。可能的罪魁祸首是没有足够重视标签和空格如何用于构造代码,并且标签的IDE缩进设置与触摸代码的最后一个人的缩进设置不同。

如果您可以在文本编辑器中显示空白字符,则应该显示是否使用了多个制表符和空格。

答案 3 :(得分:2)

似乎NetBeans格式化了Java源代码(src.jar)的代码。我手动解压缩jar并使用纯文本编辑器打开javax/swing/DefaultCellEditor.java,缩进非常糟糕。因此,IDE

但为什么缩进就是那么糟糕;对不起,我不知道。

答案 4 :(得分:1)

一种可能性是作者方面的IDE /编辑器问题。

回到我的PHP时代,我使用了PSPad编辑器,它做了与此非常相似的事情 - 在PSPad缩进看起来不错,但在其他浏览器/编辑器中缩进是错误的。 AFAIK它与混合空间与制表器和不同的标签宽度有关。