2009-10-23 38 views
7

mẫu mặc định của Eclipse với nhiều loại mới (Window> Preferences> Mã Phong cách> Mã Templates> New Java Files) trông như thế này:Trong Eclipse, làm cách nào để thay đổi các công cụ sửa đổi mặc định trong mẫu kiểu/lớp?

 
${filecomment} 
${package_declaration} 

${typecomment} 
${type_declaration} 

Tạo một lớp mới, nó sẽ giống như thế này:

package pkg; 

import blah.blah; 

public class FileName { 
    // Class is accessible to everyone, and can be inherited 
} 

Bây giờ, tôi nhiệt thành trong niềm tin của tôi rằng truy cập nên được như hạn chế càng tốt, và thừa kế nên bị cấm trừ khi được phép một cách rõ ràng, vì vậy tôi muốn thay đổi ${type_declaration} để khai báo tất cả các lớp học như final hơn public:

package pkg; 

import blah.blah; 

final class FileName { 
    // Class is only accessible in package, and can't be inherited 
} 

Điều đó có vẻ dễ nói hơn làm. Điều duy nhất tôi tìm thấy googling là một 2004 question on Eclipse's mailing list mà không được trả lời.

Vì vậy, câu hỏi ngắn gọn: Làm cách nào để thay đổi các loại công cụ sửa đổi lớp/loại mặc định trong Eclipse?

Tôi đang sử dụng Eclipse Galileo (3.5) nếu điều đó quan trọng.

Trả lời

1

Có vẻ như không thể thực hiện được. ${type_declaration} là nội dung.

Điều bạn có thể làm là nhấp vào mọi hộp kiểm cuối cùng trong "Lớp Java mới" -Dialog. Nhưng đó không phải là điều bạn muốn.

+0

Bạn nói đúng. Đó không phải là điều tôi muốn làm :) – gustafc

0

Chỉ cần kiểm tra công cụ sửa đổi truy cập thích hợp khi tạo lớp mới bằng Trình hướng dẫn lớp mới.

New Java Class Wizard

+0

Đó là những gì tôi làm hôm nay. Vấn đề là nó không nhớ sự lựa chọn của tôi, vì vậy tôi quên làm điều đó ngay bây giờ và sau đó. – gustafc

+1

@gustafc Bạn có thể để Checkstyle cảnh báo bạn nếu bạn quên nó. – starblue

+0

@ starblue, đó là một mẹo hay. Cảm ơn. – gustafc

0

Có lẽ điều này sẽ giúp bạn?

eclipse\plugins\org.eclipse.jdt.ui_*.jar\templates\ 

Eclipse custom variable for java code templates

+0

Không thực sự, nó chỉ có vẻ là nơi nhật thực chọn lên các mẫu. '$ {Type_declaration}' không có ở đó. Tôi bắt đầu nghi ngờ nó được tạo ra chứ không phải là tuyên bố. – gustafc

1

Được rồi, tôi nghĩ rằng không có bất kỳ câu trả lời mát mẻ, vì vậy những gì về điều đó "hack"?

${filecomment} 
${package_declaration} 

${typecomment} 
import invalid;/* ${type_declaration} */ 

final class ${type_name} { } 

Nếu bây giờ bạn nhấn kiểm soát + phím Shift +O để tổ chức nhập khẩu, khai báo kiểu cũ biến mất. Bạn cũng có thể thêm các tổ chức nhập khẩu để lưu hành động để tự động hóa.

Tôi biết nó xấu, nhưng nó làm những gì bạn muốn.

+0

Vâng ... suy nghĩ thú vị. Thật không may, nó sau đó tuyên bố tất cả mọi thứ như 'lớp cuối cùng', bao gồm giao diện, enums, vv, và nó bỏ lỡ bất kỳ superclasses/giao diện tôi tuyên bố trong thuật sĩ. Tôi cũng phải bao gồm '$ {type_declaration}' trong một chú thích vì bạn không thể lưu mẫu mà không có nó. – gustafc

0

Dưới đây là cách giải quyết của tôi:

Sửa mẫu:

${filecomment} 
${package_declaration} 

${typecomment} 
final class ${type_name} { 

    /* ${type_declaration} //delete */ 

    /** 
    * @see {@link Object#toString()} 
    * @return String representation of this instance. 
    */ 
    public String toString() { 
     return "some impl"; 
    } 

} 

Comment ra $ {} type_declaration vì nó là bắt buộc. Bạn có bình luận để xóa, nhưng yêu cầu là đạt được. Xin lỗi nếu đây là một chủ đề cũ 2 năm, nhưng với tôi nó vẫn còn có liên quan.

+0

Câu trả lời của codevour bị bỏ lỡ. Về cơ bản là giống nhau. –

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