Javaコメントの概要:
1。注釈はコンパイラが見ることができますが、これは注釈とは異なります
2。3つの基本的な注釈:
@Overrideは、これがメソッドをオーバーライドしていることをコンパイラに伝えます
@Deprecatedメソッドが時代遅れであることをコンパイラに伝えます
@suppresswarnings( "unchecked")警告しないでください
=(value = {"Unchecked"})
3.注釈は、従来の構成ファイルを置き換えるために使用できます
4. JDK5から始めて、Javaはメタデータ(メタデータ)、つまり注釈のサポートを追加しました。
カスタム注釈と反射注釈
カスタムアノテーション:
1.新しいアノテーションを作成する:(インターフェイス定義よりも1つの @シンボルのみ)
コードコピーは次のとおりです。
public @interface myannotation {
//財産
文字列who();
int age();
string gender();
}
2.デフォルト値で注釈を設定します
コードコピーは次のとおりです。
public @interface younantation {
string who()default "tom";
int age()default 0;
string gender()default "femer";
}
3。アレイの状況
コードコピーは次のとおりです。
public @interface theyAnnotation {
string [] value();
}
メタノテーション /メタノテーション
注釈を変更するために使用されます。 (@Overrideのソースコードを表示できます)
@retentionアノテーションポリシー。注釈が保持できるドメインを指定するために使用されます
RetentionPolicy.class
バイトコードレベルにありますが、実行レベルでは表示されません(デフォルト)
retentionPolicy.runtime
3つのレベルはすべて表示され、ランタイム中に反映できます
RetentionPolicy.Sourceは、ソースコードレベルでのみ利用可能であり、バイトコードレベルでは表示されません。
@target使用中の注釈の範囲を指定します
@documented javadocコマンドを使用してHTMLドキュメントに書き込みます。
@inherited継承可能性、このクラスを継承するサブクラスには、アノテーションとして親クラスの特性がまだあります。
ex。
定義注釈は次のとおりです。
コードコピーは次のとおりです。
//実行時に注釈を反映させます
@retention(RetentionPolicy.Runtime)
public @interface dbinfo {
string driver()default "com.mysql.jdbc.driver";
string url()default "url = jdbc:mysql:// localhost:3306/accademic";
文字列パスワード()デフォルト "1234";
文字列username()default "root";
}
反射インジェクション:
コードコピーは次のとおりです。
@dbinfo
public static Connection getConnection()スロー例外{
//このクラスのバイトコードを取得します
クラスclazz = demo2.class;
//このクラスでgetConnection()という名前のパブリックメソッドを取得します
//パラメーター1:メソッド名
//パラメーター2:メソッドタイプパラメーターに対応するバイトコードオブジェクト
メソッドメソッド= clazz.getMethod( "getConnection"、null);
//このメソッドを通して、メソッドで定義されている注釈を取得します
dbinfo dbinfo = method.getannotation(dbinfo.class);
string driver = dbinfo.driver();
string url = dbinfo.url();
string user = dbinfo.username();
文字列パスワード= dbinfo.password();
class.forname(ドライバー);
drivermanager.getConnection(url、user、password)を返します。
}