2011-02-11 22 views
11

tôi cần phải tùy chỉnh eclipse mẫu setter trở về đối tượng này, như thế nàyCustom eclipse template để làm cho setter trả về đối tượng này?

public Person setName(String name){ 
    this.name=name; 
    return this; 
} 

nhưng Java-> Mã còn phong cách> Mẫu chỉ cho phép tôi để tùy chỉnh setter phần cơ thể, chứ không phải phương pháp định nghĩa. Có cách nào để làm điều đó?

Trả lời

6

Tôi e rằng mình không thể cung cấp giải pháp cho phép bạn sửa đổi mẫu Eclipse cho điều này, tuy nhiên tôi có thể gợi ý bạn suy nghĩ lại những gì bạn đang làm ở đây không?

Nếu bạn kiểm tra JavaBeans spec bạn sẽ thấy rằng khi bạn xác định các phương pháp theo cách này, chúng không còn là bộ định vị thuộc tính hợp lệ nữa. Người định cư phải có loại trả về void; bạn có thể hối tiếc khi tạo ra những hạt cà phê không chuẩn này trong thời gian dài. Ví dụ: hãy thử sử dụng java.beans.Introspector để thu thập thông tin về bean cho lớp học của bạn và bạn sẽ thấy rằng 'setters' thuộc tính của bạn không được tìm thấy.

Tôi biết đó là tốt đẹp để có thể nhanh chóng khởi đậu của bạn với các cuộc gọi chuỗi như sau:

new Person().setName("John Smith").setDateOfBirth(...).setAddress(...) 

Tôi có thể đề nghị như một sự thay thế bạn sử dụng setters tiêu chuẩn (mà trở void) và thay vào đó giới thiệu các phương pháp xây dựng như:

public Person withName(String name) { 
    this.setName(name); 
    return this; 
} 

xây dựng dòng duy nhất nhanh chóng của bạn sau đó trông giống như:

new Person().withName("John Smith").withDateOfBirth(...).withAddress(...) 

Tôi tìm thấy tiền tố 'có' đọc độc đáo quá.

+0

vâng, tôi nghĩ bạn nói đúng. – secmask

+0

Tôi chỉ muốn có một cách để lấy nhật thực để tạo ra phương thức 'with' khi một setter được tạo ra. Vẫn không tìm ra cách. –

+0

Plugin mã nhanh sẽ xử lý việc này cho bạn. Các đặc điểm đậu java là hele bị hỏng và đã được một thời gian dài. Quyết định một cách cẩn thận thời tiết hay không bạn thực sự quan tâm về spec đậu, tôi biết tôi không bao giờ thực sự có. – lscoughlin

0

Theo như tôi có thể nói, tất cả các bạn có thể làm là chỉnh sửa "Window-> Preferences-> Java-> Mã còn phong cách> số-> Setter cơ thể" mẫu trong Java như vậy:

${field} = ${param}; 
return this; 

Mặc dù điều này sẽ không tự động thiết lập kiểu trả về cho bạn, Eclipse sẽ ném một màu đỏ vào bạn cho mỗi một trong các bộ định cư của bạn, sau đó bạn có thể di chuột qua và chọn "Đổi kiểu trả về thành 'yourTypeHere'".

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