大白話でJavaSEについて話す--カスタム注釈入門


注釈はJavaSEの中で比較的に高級な1種の用法で、どうして注釈を学ぶのか、私は大体以下のいくつかの原因があると思います:
1.Javaをより深く学び、Javaの思想を理解することができる.
2.注釈の基礎ができ、hibernate、SpringMVCなど、さまざまなフレームワークのソースコードを簡単に読むことができます.中には大量の注釈が使われています.ソースコードが読めなくても、後でこれらのフレームワークを使うと、心理的な安心感があります.
[原句]これから他人に自慢話をするのが便利です.△もちろん、これも重要です.
さあ、あまり話さないで、始めましょう.
1.注釈の観点から注釈を理解する
長い間考えていましたが、最終的にこの小さなタイトルを第1節のタイトルにすることにしました.Javaコードを書くとき、私たちのコードを分かりやすく見せるために、注釈情報を加えます.
例えば、この方法の著者、役割、バージョンなどの情報をマークする方法を書きます.はい、プログラマーとして、優雅な注釈を書くことは非常に重要な良い習慣です.
例:
/**
 *            
 *    :isEmpty
 *    :     
 *   :2016 9 21 -  6:56:33
 * @param str
 * @return boolean
 */
public static boolean isEmpty(String str) {
    return null == str  || str.equals("")
            || str.matches("\\s*");
}

これは文字列判空の関数で、関数名はisEmptyで、名前を見てもたぶんその役割が推測できるのですが、注釈をつけると、一瞬でもっとはっきりしてくるのではないでしょうか.
この注釈は、コードが実行されると、実行メカニズムは自動的に無視されます.これらの文字は実行メカニズムではなく、プログラマに見られるからです.
注釈を書くのは美徳だ.
では、注釈は何でしょうか.
個人的には、注釈とは、パソコンに書く高度な注釈です.
コードの中に@XXXのロゴが出てくるのをよく見かけるかもしれませんが、一見深い感じがします.どうせ私はその時このような感じで、頭の中で最初の反応はこれがきっと難しいに違いない.
私はまだその言叶で、もしあなたがいつも复雑なことを考えているならば、それでは永远に简単さが见えません.
私たちが注釈を書くのは、人に見せるもので、注釈はパソコンに書くものです.簡単です.
ちょっと抽象的かもしれませんが、大丈夫です.素早く入門しましょう.
2.質問を出す
Javaプロジェクトの新規作成
プロジェクト名はAnnotationと呼びましょう
srcの横を右クリックしてutilパッケージ、すなわちツールパッケージを新規作成します.
日付を専門に扱うツールクラスを作る
日付のフォーマット方法を勝手に書きます.
package util;

import java.util.Date;
import java.text.SimpleDateFormat;

public class DateUtil {
    
    public static String formatDate( Date date , String formatPattern ){
        return new SimpleDateFormat(formatPattern).format(date);
    }
    
}

注意、ガイドパッケージの場合javaです.util.Date;,javaではなくsql.Date;
テスト:
Date now = new Date();//      
System.out.println(now);
System.out.println(formatDate(now,"yyyy-MM-dd hh:mm:ss"));

コンソール印刷:Wed Sep 21 19:24:57 CST 20162016-09-21 07:24:57
これは、私たちが書く方法が正しいはずだということを示しています.
では、次はどんな問題を解決しますか?つまり、この方法に関する情報をコードで取得したい場合は、どうすればいいのでしょうか.
注釈を書くのはきっとだめです.注釈はプログラマーが読んだので、パソコンが読めません.注釈の内容は言うまでもありません.
すると、注釈という高度な注釈が現れます.
3.注記の作成
注記については、次の3つの問題を明確にします.
  • 誰に注釈をつけますか?
  • いつ注釈が役に立ちますか?
  • それらを注釈しますか?

  • クイックエントリーなので、たぶんそれを知っていれば十分です.
    今、私たちは新しい注釈を作成します.間違いなく、注釈とはJavaクラスです.驚かないでください.
    注記パッケージを新規作成します.
    new AnnotationはMethodNoteと呼ばれています.これは方法に加えられており、方法にパソコンで読める説明を加えるためです.
    最初の問題は誰に注釈をつけるのですか?では、この注釈クラスはメソッドに追加する必要があるので、このように書きます.
    これは,この注釈を方法に加えることを示す.
    次に、2つ目の質問を明確にしましょう.いつ注釈が役に立つのでしょうか.
    私たちはプログラムが実行されるときに、注釈が機能することを望んでいます.つまり、あなたのプログラムが走り出すと、コンピュータはこれらの注釈を読み始めます.
    私のこの注釈は、プログラムが走り出したとき、RUNTIMEは、走り出したときに、機能したのです.
    とてもいいです.では、最後の質問です.それらを注釈しますか.
    最も重要な情報は、役割、作成時間、作成者、バージョン、戻り値などです.私たちは勝手にいくつか抽出して、作用と作成時間について話しましょう.
    この書き方は、インタフェースを書く方法に似ています.
    さあ、私たちの最初の注釈は書き終わりました!書き終わったらすぐに使いましょう.今、日付のフォーマット方法に自分で書いた注釈を加えます.
    @MethodNote(createTime = "2016-9-21")
    public static String formatDate(Date date , String formatPattern){
        return new SimpleDateFormat(formatPattern).format(date);
    }

    これが注釈というもので、実は簡単なのでしょう.このようにして、結局はJavaクラスです.
    4.Java反射によるメソッドの注釈情報の取得
    さて、本題に戻り、formatDateメソッドに注釈をつけました.では、この注釈がコンピュータに書かれている以上、コンピュータは他のJavaクラスでこれらの情報を得る方法があるのではないでしょうか.
    どうやって手に入れるか、そうだ、反射メカニズムで.
    上のコード:
    public static void main(String[] args) throws NoSuchMethodException, SecurityException {
    
        Class classOfDateUtil = DateUtil.class;
        Method formatDate = classOfDateUtil.getMethod("formatDate", Date.class,String.class);
        MethodNote methodNote = formatDate.getAnnotation(MethodNote.class);
    
        System.out.println("    :" + methodNote.description());
        System.out.println("    :" + methodNote.createTime());
    }

    結果:
    方法の説明:作者は怠け者で、本を書く方法の役割がありません.作成日:2016-9-21
    この章は終わります...
    この章では、Javaカスタム注釈について簡単に説明します.