Từ doc Java:Chú NGUỒN Retention Policy
CLASS: Chú thích sẽ được ghi lại trong tập tin lớp bởi trình biên dịch nhưng không cần phải được giữ lại bởi VM tại thời gian chạy.
RUNTIME: Chú thích sẽ được ghi trong tệp lớp bởi trình biên dịch và được máy ảo lưu giữ tại thời gian chạy, vì vậy chúng có thể được đọc một cách phản ánh.
NGUỒN: Chú thích sẽ bị trình biên dịch loại bỏ.
Tôi hiểu các tập quán của RUNTIME (để sử dụng chú thích với sự phản ánh) và CLASS (đối với trình biên dịch) nhưng tôi không hiểu khi nó có thể hữu ích để sử dụng
@Retention (RetentionPolicy. SOURCE)
Bạn có thể giải thích?
và tại sao không RetentionPolicy.CLASS? – JohnJohnGa
+1: Một số chú thích được trình biên dịch sử dụng là duy trì CLASS. –
Những thứ này không cần thiết trong ByteCode (trong tệp .class). – gkamal