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

发布于 2024-12-04 09:09:50 字数 576 浏览 1 评论 0原文

我经常依靠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 造成的,因为我发现这种缩进非常奇怪并且难以阅读。

I often rely on the JDK source code to understand how I should implement an interface, and I often find some very strange indentation style at use. For instance, in 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);
}

I'm wondering if this is due to my IDE or not, since I find this kind of indentation quite strange and difficult to read.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

披肩女神 2024-12-11 09:09:50

听起来像是制表符与空格问题。尝试将制表符宽度设置为 4 个空格(如果是 4,则设置为 8)。

这是我在浏览 DefaultCellEditor 的 OpenJDK 代码在线。

在此处输入图像描述

Sounds like a tab vs spaces issue. Try setting the tab width to 4 spaces (or 8 if it is 4).

Here is what I see when browsing the OpenJDK code for DefaultCellEditor online.

enter image description here

寄居人 2024-12-11 09:09:50

如果缩进在不同方法中是一致的,那么可能有一些(不成文的)原因造成这种情况。

如果没有规律或理由,那么(a)编码器不关心缩进,或者(b)编码器确实关心,并且在通往您的计算机的途中发生了一些事情。可能的罪魁祸首是没有对如何使用制表符和空格来构建代码给予足够的关注,并且您的 IDE 的制表符缩进设置与最后一个接触代码的人的缩进设置不同。

如果您可以使空白字符在文本编辑器中可见,那么应该会显示是否使用了制表符和空格的混合。

If the indentation is consistent across different methods, then there's probably some (unwritten) reason why it's that way.

If there's no rhyme or reason, then (a) the coder(s) didn't care about indentation, or (b) the coder(s) did care, and something happened en route to your computer. The likely culprit is that not enough attention was given to how tabs and spaces were used to structure the code, and your IDE's indentation settings for tabs are different than those of the last person's who touched the code.

If you can make the whitespace characters visible in your text editor, that should show you if a mix of tabs and spaces was used.

桃酥萝莉 2024-12-11 09:09:50

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

I suspect your IDE is ignoring or otherwise misinterpreting tab characters.

囚我心虐我身 2024-12-11 09:09:50

NetBeans 似乎格式化了 Java 源代码 (src.jar) 的代码。我手动提取了 jar 并使用纯文本编辑器打开了 javax/swing/DefaultCellEditor.java ,缩进确实很糟糕。因此,它不是 IDE。

但为什么缩进那么糟糕?抱歉,我不知道。

It seems that NetBeans formats the code of the Java Source Code (src.jar). I extracted the jar manually and I opened javax/swing/DefaultCellEditor.java using a plain text editor and the indentation is really that bad. So, it is not the IDE.

But why the indentation is that bad; sorry, I don't know.

莫多说 2024-12-11 09:09:50

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

回到我的 PHP 时代,我使用 PSPad 编辑器,它的功能与此非常相似 - 在 PSPad 中,缩进看起来不错,但在其他查看器/编辑器中,缩进被破坏了。 AFAIK 它与混合空格与制表符和不同的制表符宽度有关。

One possibility is IDE/editor problem on author's side.

Back in my PHP days I used PSPad editor which does something very similar to this - in PSPad indentation looks OK but in other viewers/editors indentation is mangled. AFAIK it has something to do with mixing spaces with tabulators and different tab width.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文