Tuesday, January 17, 2017

[Java] Giới thiệu về Generic và Annotation

Chào các bạn, hôm nay mình sẽ giới thiệu về kỹ thuật Generic và Annotation trong java.
Cả hai kỹ thuật này đều được thêm vào từ Java 5.

Generic

  1. Về generic:
    1. Là một feature được thêm vào từ Java 5.0 
    2. Generic thể hiện tính trừu tượng trong Java, bản thân generic cũng có thể kế thừa hoặc được kế thùa từ một kiểu dử liệu khác. 
    3. Generic mô tả một cách trừu tượng class sẽ được sử dụng trong class hay method. 
    4. Mục đích của nó: Cung cấp tính an toàn về kiểu trong thời điểm biên dịch. 
    5. Generic được sử dụng trong: Class Generic, Method Generic,Interface Generic.
  2. Generic giúp giải quyết?

    1. Giúp bộ dịch xác minh được kiểu dữ liệu. 
    2. Bộ dịch sẽ biết chính xác cần phải ép kiểu thể nào.
Annotation:
  1. Một số bài toán:
    1. Bài toán của Hibernate: đây là một frame làm việc với database thông qua việc mapping object. Từ Java Bean phải mapping qua bảng tương ứng với database. Sau đó hibernate sẽ chuyển thành các câu lệnh SQL tương ứng và thực thi. Nhưng không phải lúc nào các trường này được ánh xạ chính xác với database nên ta phải mô tả code. 
    2. Trước khi annatotion ra đời, để biểu diễn meta data cho một class, property, method developer phải sử dụng XML, Properties, Comment. Đến java 5 Sun thêm vào cái gọi là annotation.
  2. Annotation là gì:
    1. Là một feature được thêm vào từ Java 5.0
    2. Là một dạng meta data đặc ta cho một đối tượng hoặc một method hay là một property mà bạn có thể thêm vào Java Code. 
    3. Mục đích:
      1. Chỉ dẫn cho trình compiler 
      2. Chỉ dẫn Build-time 
      3. Chỉ dẫn trong thời điểm Runtime.
  3. Annatotion: chỉ dẫn cho trình compiler?
    1. Java cung cấp sẵn một số annotation thường gặp như: 
      1. @Override 
      2. @Deprecated 
      3. @SuppressWarnings
      4. @SafeVarargs 
      5. @Documented. 
    2. Để tự tạo ra các chỉ dẫn để trình compiler có thể hiểu được thì sử dụng Annotation processing tool. (APT)
  4. Annatotion: chỉ dẫn Build-time?
    1. Annotation được sử dụng trong lúc build-time để tạo ra các mã nguồn, biên dịch mã nguồn, tạo ra các file XML. Xây dụng các tool tự động. 
    2. Ví dụ như tool Hiberate: đọc database sẽ tự động build thành các class, xml tương ứng.
    3. Thông thường sau khi biên dịch thì các annotations không có mặt trong mã Java. Tuy nhiên vẫn có thể sử dụng reflection để đọc các annotations lúc run-time. 
    4. Để làm việc nay thì thiết lập như sau: 
      1. @Retention(RetentionPolicy.RUNTIME)
Đây là 2 kỹ thuật nâng cao của Java mà bất kỹ Senior Java nào cũng phải biết. 
Hy vọng với bài viết này bạn sẽ có thể hình dung tổng quát và hiểu được khái niệm Generic và Annotation cũng như trường hợp sử dụng chúng.
Với bài viết sau, tôi sẽ có bài toán cũng như ví dụ cụ thể về 2 kỹ thuật này.

6 comments:

  1. thanks for sharing your information.I am hoping the same best work from you in the future as well. Bookmarked this site. You absolutely have wonderful stories.
    autoketing, Discount master by autoketing, Discount master app

    ReplyDelete
  2. I have a fancy on your posts.I'm full of the joys of spring when see your new posts.Your posts can help me more and more in the future. Thank you for sharing what you know.
    autoketing shopify app free shipping bar Shopify free shipping bar app

    ReplyDelete
  3. Much thanks for this valuable article. Some genuinely interesting info , well written and loosely user pleasant.
    Tomb Runner best online game Mommy Elsa Baby Caring online game best gameBlocky Craft Police Squad

    ReplyDelete
  4. Currently it sounds like BlogEngine is the best blogging platform out there right now. (from what I’ve read) Is that what you are using on your blog?
    friv 4 game
    2player games for kids
    io jogos for kids

    ReplyDelete
  5. here is such a great amount in this article I would never have considered all alone.I decided to add your blog to my bookmarks so I can return to it at a later date.
    miniclip games, a10 games to play, jogos para crianças

    ReplyDelete
  6. This is a post that we all should read at least once, it's great, wish you success in the next blog. I like this post because it contains a lot of useful information to read, maybe everyone will like me.
    Games of pbs, friv jogos 2019, kizi car games

    ReplyDelete