2011-09-14 26 views
14

Tôi thường dựa vào mã nguồn JDK để hiểu làm thế nào tôi nên thực hiện một giao diện, và tôi thường tìm thấy một số phong cách thụt đầu rất lạ khi sử dụng. Ví dụ, trong DefaultCellEditor.java:Tại sao mã nguồn thư viện Java lại bị thụt vào một cách kỳ lạ?

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); 
} 

Tôi tự hỏi nếu điều này là do IDE của tôi hay không, vì tôi tìm thấy loại thụt đầu dòng khá kỳ lạ và khó đọc.

+2

Bạn đang sử dụng IDE nào? –

+0

Mã nguồn này hoặc giải mã từ IDE? –

+0

@david Netbeans 6.9.1 và kết quả tương tự với 7.0.1. Tôi có thể điều tra nếu các gói lõi cũng giống nhau hay không. –

Trả lời

3

Nếu thụt đầu dòng là nhất quán giữa các phương pháp khác nhau, thì có thể có một số lý do (không đọc) tại sao theo cách đó.

Nếu không có vần hoặc lý do, thì (a) người lập trình không quan tâm đến thụt lề, hoặc (b) người quản lý đã quan tâm và điều gì đó đã xảy ra trên máy tính của bạn. Thủ phạm có khả năng là không đủ chú ý đến cách các tab và không gian được sử dụng để cấu trúc mã, và cài đặt thụt đầu dòng IDE của bạn cho các tab khác với của người cuối cùng đã chạm vào mã.

Nếu bạn có thể làm cho các ký tự khoảng trống hiển thị trong trình soạn thảo văn bản của bạn, điều đó sẽ cho bạn thấy nếu một hỗn hợp các tab và dấu cách được sử dụng.

+1

Quá tệ Tôi không thể chấp nhận mọi câu trả lời. Lỗi thực sự xuất phát từ sự không nhất quán trong mã nguồn: một số dòng được thụt lề bằng các tab, một số dòng khác có dấu cách. Buộc các tab được hiển thị với 8 dấu cách đã giải quyết được vấn đề, nhưng điều này dẫn đến một câu hỏi khác: tại sao chúng lại trộn các tab và dấu cách? Các ủy ban khác nhau với các kiểu mã hóa khác nhau có thể ... Họ nên chú ý đến điều đó. –

+0

Phải. Chuyển đổi các tab thành không gian có thể được thực hiện trong IDE. Trong mỏ, mỗi lần tôi nhấn phím TAB, bốn dấu cách được chèn vào. Các tab không bao giờ nhập mã của tôi. – John

3

Tôi nghi ngờ IDE của bạn đang bỏ qua hoặc hiểu sai các ký tự tab khác.

+4

Sau đó, câu hỏi sẽ chuyển thành "tại sao chúng lại trộn lẫn các tab và dấu cách". – delnan

+0

Như tôi đã nhận xét về câu hỏi, delnan, nó thực sự là trường hợp: các tab dường như được trộn lẫn với không gian, vì hạnh phúc của mọi người :) –

+0

Không, IDE là chính xác. Sự thụt đầu dòng thực sự như thế. –

1

Một khả năng là vấn đề về IDE/trình soạn thảo bên phía tác giả.

Quay lại trong các ngày PHP của tôi, tôi đã sử dụng trình soạn thảo PSPad thực hiện một cái gì đó rất giống với điều này - trong phần đầu của PSPad có vẻ OK nhưng ở người xem/biên tập thụt đầu dòng bị xáo trộn. AFAIK nó có một cái gì đó để làm với không gian trộn với tabulators và chiều rộng tab khác nhau.

2

Dường như NetBeans định dạng mã của Mã Nguồn Java (src.jar). Tôi trích xuất các jar bằng tay và tôi mở javax/swing/DefaultCellEditor.java bằng cách sử dụng một trình soạn thảo văn bản đơn giản và thụt đầu dòng thực sự là xấu. Vì vậy, nó là không phải là IDE.

Nhưng tại sao thụt đầu dòng là xấu; xin lỗi, tôi không biết.

+0

Vâng, trình soạn thảo văn bản cũ tốt có thể đang sử dụng 4 dấu cách cho các tab và không phải 8 :) –

Các vấn đề liên quan