Почему исходный код библиотеки 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 или нет, так как я нахожу этот отступ довольно странным и трудным для чтения.
Ответы
Ответ 1
Если отступ согласован для разных методов, то, вероятно, есть некоторая (неписаная) причина, почему так.
Если нет никакой рифмы или причины, то (а) кодер не заботился о отступе или (б) кодер действительно заботился, и что-то случилось на пути к вашему компьютеру. Вероятным виновником является то, что недостаточно внимания было уделено тому, как вкладки и пробелы использовались для структурирования кода, а настройки отступа IDE для вкладок отличаются от настроек последнего человека, который коснулся кода.
Если вы можете сделать символы пробела видимыми в текстовом редакторе, это должно показать вам, было ли использовано сочетание вкладок и пробелов.
Ответ 2
Звучит как tab vs spaces. Попробуйте установить ширину закладки в 4 пробела (или 8, если она равна 4).
Вот что я вижу при просмотре кода OpenJDK для DefaultCellEditor в Интернете.
![enter image description here]()
Ответ 3
Я подозреваю, что ваша IDE игнорирует или иным образом неверно интерпретирует символы табуляции.
Ответ 4
Кажется, что NetBeans форматирует код исходного кода Java (src.jar
). Я извлек банку вручную, и я открыл javax/swing/DefaultCellEditor.java
с помощью обычного текстового редактора, и отступы действительно настолько плохие. Таким образом, это не IDE.
Но почему отступы настолько плохие; извините, я не знаю.
Ответ 5
Одной из возможностей является проблема IDE/редактора со стороны автора.
В мои PHP-дни я использовал редактор PSPad, который делает что-то очень похожее на это: в отступе PSPad выглядит нормально, но в других редакторах/редакторах отступы искажаются. AFAIK имеет какое-то отношение к смешиванию пространств с табуляторами и ширине табуляции.