2016-11-03 22 views
10

Tôi có thể tạo các lớp từ đầu bằng cách sử dụng trình xử lý chú thích nhưng tôi không thể sửa đổi một lớp như lombok. Tôi đã tìm kiếm các lớp học được tạo ra bởi lombok trong studio android tuy nhiên tôi thấy không có gì. sau đó tôi đã kiểm tra tổng quan lombok thông qua trang web của họ và cũng điều tra nó trong diễn đàn nhưng tôi đã đạt được ở cuối mà không có bất cứ điều gì. Câu hỏi của tôi rất đơn giản. Làm thế nào lombok thống nhất mã được tạo ra với các mỏ trong khi tôi sử dụng @Setter chẳng hạn. Tôi có thể phát triển một bộ xử lý như thế nào?Làm thế nào Lombok tạo mã lên lớp hiện tại?

Trả lời

4

Có vẻ như một bản sao của How does lombok work? và tôi sẽ gắn cờ là bị lừa nhưng tiền thưởng của bạn ngăn cản.

Tóm lại, Lombok không thực sự tạo mã. Thay vào đó, nó sử dụng các trình api thực hiện trình biên dịch nội bộ không xác định và không có giấy tờ để trực tiếp sửa đổi cây cú pháp trừu tượng của chương trình giữa việc đọc mã nguồn và xuất ra bytecode được biên dịch. Nó có thể phá vỡ mà không có cảnh báo hoặc thông báo về việc cập nhật lên phiên bản trình biên dịch mới, nhưng hiện tại không có cách nào khác.

+2

Cũng tái "Làm cách nào để phát triển bộ xử lý như?", Cách dễ nhất là viết chú thích Lombok tùy chỉnh. Xem ví dụ https://binkley.blogspot.co.uk/2014/12/writing-your-own-lombok-annotation.html – Rich

-1

Lombok đang tạo mã trong giai đoạn biên dịch. Đây là hướng dẫn cho rằng http://hannesdorfmann.com/annotation-processing/annotationprocessing101.

Nếu bạn hoàn toàn mới khai báo chú thích của riêng mình, tôi khuyên bạn nên bắt đầu với chú thích thời gian chạy. Chúng dễ hiểu và gỡ lỗi hơn và mã của bạn "hoạt động" trong giai đoạn chạy mà bạn đã quen thuộc. Một hướng dẫn ngắn cho điều đó: http://docs.oracle.com/javase/1.5.0/docs/guide/language/annotations.html

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