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?
Trả lời
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ì.
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. –
@ 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
Đó 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. –
- 1. Dự án Lombok có hoạt động tốt với Scala không?
- 2. Tôi sử dụng dự án Lombok nhưng getter và setter không có JavaDoc
- 3. Thuộc tính '.class' hoạt động như thế nào?
- 4. Dự án Blue Brain Project (và phần mềm NEURON) hoạt động như thế nào?
- 5. Java và Scala hoạt động tốt như thế nào?
- 6. Lỗi khi biên soạn dự án Java/Scala hỗn hợp và Lombok
- 7. Các lớp thuộc tính hoạt động như thế nào?
- 8. Maven Groovy và Java + Lombok
- 9. MVC SessionStateAttribute không hoạt động như Thuộc tính toàn cầu
- 10. Tôi có thể sử dụng dự án Ninject .NET của mình trong Orchard CMS không?
- 11. .NET profilers hoạt động như thế nào?
- 12. MethodImplAttribute hoạt động như thế nào trong .NET?
- 13. .NET Caching hoạt động như thế nào?
- 14. iframe hoạt động như thế nào trong HTML5 mà không có thuộc tính hộp cát?
- 15. $ (document) .ready không hoạt động thuộc dự án MVC4
- 16. Lombok sử dụng loại 'val' trong IntelliJ
- 17. có thể thực hiện dự án plugin phụ thuộc vào dự án java
- 18. Java có thuộc tính tự động không?
- 19. Tính đa hình hoạt động như thế nào trong Python?
- 20. Thuộc tính tự động tổng hợp trong xcode 4.4 hoạt động như thế nào?
- 21. Application.Restart hoạt động như thế nào trong .NET?
- 22. Tính năng C# này có tên không và nó hoạt động như thế nào?
- 23. Tôi có thể sử dụng các Hợp đồng Mã trong một dự án C++/CLI như thế nào?
- 24. Bạn có thể sử dụng tệp .NET 4.0 dll trong dự án 3.5 không?
- 25. Thuộc tính enableClientBasedCulture trong Web.config có hoạt động không?
- 26. Có ai sử dụng Ant4Eclipse với Project Lombok không?
- 27. Thêm MOQ vào dự án .NET 4.0 là không thể
- 28. Scala hoạt động tốt như thế nào so với Java?
- 29. Sử dụng thuộc tính dự án Visual Studio hiệu quả cho nhiều dự án và cấu hình
- 30. Thuộc tính bắt buộc HTML5 dường như không hoạt động
Không. Net đã có các thuộc tính? – Goibniu
@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