Các annotation này có tác dụng gì?

Mọi người ơi,
Em đang học java cơ bản, đến phần Annotation thì họ làm như thế này nhưng em đọc đi đọc lại vẫn không hiểu họ viết như vậy đề làm gì(mấy dòng @). Ai biết có thể giải thích giúp em được không? Em cảm ơn.

trước tiên phải tách dấu @ thành 2 phần.
@interface => Đây là cách bạn khai báo 1 annotation.
@MyFirstAnnotation => Đây là cú pháp bạn sử dụng annotation đã khai báo.

Về tác dụng của annotation thì có thể liệt kê ra 1 số tác dụng như sau:

  • Tác dụng tương tự comment dùng để chỉ định chức năng của 1 function. Có thể kể đến các annotation loại này như: @Override
  • Đánh dấu code hỗ trợ cho các tool code gen. Loại này vô cùng, cú pháp và danh sách annotation phụ thuộc vào bạn dùng plugin code gen nào. Loại này hay thấy trong các thư viện Dependency injection, Web API, Obfuscate code …
  • Đánh dấu code hỗ trợ cho runtime reflection. Gọi các function, truy cập biến 1 cách linh hoạt lúc runtime. Loại này thì cũng giống như loại cho các tool code gen, cũng rất nhiều annotation và hay thấy trong các thư viện Dependency injection, Web API,…

Bản chất của annotation là đánh dấu, thêm thông tin cho 1 class, function, field để các tool, thư viện sử dụng nhằm thay đổi hành vi lúc runtime hoặc compile time. Còn các tool/thư viện đó dùng như thế nào thì lại là 1 topic rất rộng khác

7 Likes

Cái mà anh nói là java cơ bản hay nâng cao ạ. Tại em không hiểu cho lắm.

Java cơ bản:
Annotation chỉ dùng để comment.


Java nâng cao

Chúng tôi không làm thế, annotation để làm decorator pattern.

6 Likes

Nếu bạn không hiểu thì chắc là java nâng cao rồi :smile:

3 Likes

Cái đúng với mọi ngôn ngữ không vậy anh? Em thấy nhiều ngôn ngữ khác cũng có annotation, bên typescript cũng sử dụng annotation để implement decorator pattern.

Uhm, annotation là concept share giữa các ngôn ngữ khác nhau.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?