2010-10-18 44 views
11

Project Lombok làm cho nó tầm thường để thực hiện mã boilerplate trong các lớp học. Có thể với các thuộc tính .NET không? Có cổng .net nào không?Dự án Lombok trong java hoạt động như thế nào và có thể sử dụng thuộc tính .net không?

+1

Không. Net đã có các thuộc tính? – Goibniu

+0

@Rlmeq có nhưng hãy xem ví dụ này http://projectlombok.org/features/Data.html. Nó gần giống như ma thuật với một thuộc tính duy nhất – suhair

Trả lời

4

Vâng ở Lombok một lớp Java có thể trông như thế này

import lombok.Data; 

@Data public class Cart { 
    private int id; 
    private DateTime created; 
    private int items; 
    private int status; 
} 

Trong khi trong C# cùng lớp sẽ trông như thế này

public class Cart { 
    public int Id { get; set; } 
    public DateTime Created { get; set; } 
    public int Items { get; set; } 
    public int Status { get; set; } 
} 

Vì vậy, C# (3.0 trong ví dụ này) được khá chặt chẽ mà không cần bất kỳ thư viện nào khác, nhưng khi bạn bắt đầu thêm "final" vào một số thuộc tính, phần "auto constructor" ma thuật của Lombok thực sự tỏa sáng. Đối với một .Net thay thế, như tôi hiểu nó. Net chú thích không cung cấp khả năng chặn mã byte trước khi nó đi vào trình biên dịch (những gì Lombok sử dụng hiệu ứng tuyệt vời như vậy), do đó, các tùy chọn của bạn được giới hạn trong một số mẫu hệ thống + một kịch bản xây dựng như nAnt. Đây sẽ là một mớ hỗn độn để duy trì.

+0

Bạn không thể chặn việc tạo mã byte nhưng có một số thư viện khá tinh vi để phân tích cú pháp các hội đồng cuối cùng. Bạn có thể sử dụng các trường công khai trong mã và sau đó có một bước sau xây dựng viết lại tất cả các hội đồng có liên quan để sử dụng các thuộc tính được tạo tự động. Nhưng bạn sẽ không thể đạt được mọi thứ Lombok làm với kỹ thuật này. Sử dụng tốt hơn một cái gì đó như T4 (tạo mã) và các lớp học một phần. –

+3

@ Xảy ra mã C# của bạn không thực sự tương đương với mã Java: bằng và hashCode bị thiếu. Lombok cũng tạo ra điều đó. – Jirka

+1

Đó là sự thật. Đã khá lâu rồi tôi mới viết câu trả lời đó. Tôi đã học được rất nhiều kể từ đó nhưng tôi nghĩ rằng quan điểm của tôi vẫn còn giữ. Lombok đó tự động thực hiện rất nhiều và phương pháp mà nó sử dụng là (vẫn) duy nhất đối với Java. –

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