Java宣言
16987 ワード
宣言
Java宣言は、JavaコンパイラおよびJVMで使用可能な情報の一部を表すメタデータです.
組み込みコメントとユーザーコメントの2種類があります.
@Override(内蔵)
JAva overridingでよく見られるコメント.
これは、子メソッドが親メソッドを再定義したときに表示されるメソッドです.
class Animal{
void eat(){
System.out.println(" 음식을 먹는중");
}
}
class Dog extends Animal{
private String name;
Dog(String name){
this.name=name;
}
@Override
void eat() {
System.out.print(name);
super.eat();
}
}
public class Main {
public static void main(String[] args) {
Dog d=new Dog("강이지");
d.eat();
}
}//강아지 음식을 먹는중
@SuppressWarnings(内蔵)
コンパイラからの警告を除外します.
あまりよくない言い方だと思います.
警告を無視する必要があるからですか?このような考えと警告は本当に手がかりのような警告かもしれないので、あまり良い方法ではないようです.
@Depented(内蔵)
次に、このメソッドは使用されなくなり、使用されている場合はコンパイラに警告します.
class A{
void m(){
System.out.println("hello m");
}
@Deprecated
void n(){
System.out.println("hello n");
}
}
public class Main {
public static void main(String[] args) {
A a=new A();
a.m();
a.n();
}
}
ユーザーコメント
ユーザーコメントを使用する場合は、次の点を覚えておいてください.
メソッドにthrowセクションを含めることはできません
メソッドにはパラメータを含めるべきではありません.
メソッドは、データ型、文字列、クラス、列挙タイプなどのデータ型の配列の1つを返さなければなりません.
@インタフェース(ユーザー)
@interface MyAnnotaion{
}
@interface MyAnnotaion{
int value();
}
@interface MyAnnotaion{
int value();
String value2();
String value3();
}
@Target(ユーザー)
@Targetタグは、コメントの使用タイプを指定します.
@Target(ElementType.TYPE)
@interface MyAnno{
int value();
String value2();
}
@Target({ElementType.TYPE,ElementType.FIELD,ElementType.METHOD})
@interface MyAnno{
int value();
String value2();
}
@予約(ユーザ)
次に、ライフサイクル->ライフサイクルが生き残る時間について説明します.
保存ポリシー有効性保存ポリシー.SOURCEソースファイルにのみ存在する->コンパイル後に宣言は消えます.RetentionPolicy.CLASSクラスはファイルにのみ存在します->実行時にクラスをメモリに読み込むと、この情報は保存ポリシーから削除されます.RUNTIMEクラスファイルに存在し、実行時に使用可能->コンパイラ、JVMですべて動作
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface MyAnnotation{
int value();
String name();
}
//주석 적용
class Hello{
@MyAnnotation(value = 20,name="hwan")
public void sayHello(){
System.out.println("안녕");
}
}
public class Main {
public static void main(String[] args) throws Exception {
Hello h=new Hello();
Method method=h.getClass().getMethod("sayHello");
MyAnnotation m=method.getAnnotation(MyAnnotation.class);
System.out.println("값:"+m.value());
System.out.println("이름:"+m.name());
}
}//값:20 이름:hwan
Reference
この問題について(Java宣言), 我々は、より多くの情報をここで見つけました https://velog.io/@ghks285/Java-어노테이션テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol