ホームページ  >  記事  >  Java  >  Javaアノテーションの使い方 Annotaton

Javaアノテーションの使い方 Annotaton

WBOY
WBOY転載
2023-04-25 17:58:151254ブラウズ

1. 3 つの基本的なアノタトン

@オーバーライド: メソッドを制限するには、親クラスのメソッドをオーバーライドします。このアノテーションはメソッドに対してのみ使用できます。
@非推奨: 特定のメソッドを表すために使用されます。プログラム要素 (クラス、メソッドなど) は廃止されています
@SuppressWarnings: コンパイラ警告を抑制します

@Override

class father{
   public void fly(){}
}
class son extends father{
    @Override
    public void fly() {
        super.fly();
    }
}

Interpretation

@Override は、息子がプログラムをオーバーライドすることを意味します。 fly メソッド

詳細

@Override がない場合でも、fly メソッドは書き換えられます

class father{
   public void fly(){}
}
class son extends father{
    public void fly() {
        super.fly();
    }
}

@Override アノテーションが記述されている場合、コンパイラは、 Method は親クラスの Method をオーバーライドします。書き換えられた場合、コンパイルは成功します。書き換えないとコンパイルエラーとなります。

Javaアノテーションの使い方 Annotaton

@オーバーライドはメソッドのみを変更でき、他のクラス、パッケージ、プロパティなどは変更できません。

//@Override底层代码
@Target(ElementType.METHOD)//ElementType.METHOD说明@Override只能修饰方法
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

@非推奨

public class Deprecatedtext {
    public static void main(String[] args) {
        father father1 = new father();
        father1.fly();
    }
}
@Deprecated
class father{
    @Deprecated
   public void fly(){}
}

解釈

@Deprecated は、特定のプログラム要素 (クラス、メソッドなど) が廃止されていることを意味し、単語の中央に水平線が表示されます。使用が推奨されないことを示します。

Effect

Javaアノテーションの使い方 Annotaton

詳細では、メソッド、クラス、パッケージ、パラメータなどを変更できます。

//@Deprecated底层代码
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})//说明Deprecated能修饰方法,类,包,参数等等
public @interface Deprecated {
}

2.@Deprecated がその役割を果たすことができます古いバージョンと新しいバージョンの間で互換性を移行します。

@SuppressWarnings

@SuppressWarnings("all")
class father{
   public void fly(){}
}

Interpretation

@SuppressWarnings アノテーションを使用して、警告情報を抑制できます{""}警告情報を書き込みます抑制したい

Effect

Javaアノテーションの使い方 Annotaton

Javaアノテーションの使い方 Annotaton

Details

1. @SuppressWarnings のスコープが関連しています

public class Enumtext {
    @SuppressWarnings("all")//作用范围在main方法
    public static void main(String[] args) {
        father father1 = new father();
        father1.fly();
    }
}
@SuppressWarnings("all")//作用范围在father类
class father{
   public void fly(){}
}

指定された警告タイプは

all、すべての警告を抑制します
boxing、パッケージ化/逆アセンブリ操作に関連する警告を抑制します
cast、警告を抑制します強制変換操作に関連する
dep-ann、削除コメントに関連する警告を抑制します
deprecation、削除に関連する警告を抑制します
fallthrough、switch ステートメントのブレークの省略に関連する警告を抑制します
finally、抑制および返されません Finally ブロックに関連する警告
hiding、変数を非表示にするローカル変数に関連する警告を抑制します
incomplete-switch、switch ステートメントの欠落項目に関連する警告を抑制します (enum の場合)
javadoc、次の変数に関連する警告を抑制しますjavadoc 関連の警告
nls、非 NLS 文字列リテラルに関連する警告を抑制します
null、NULL 値分析に関連する警告を抑制します
rawtypes、生の型の使用に関連する警告を抑制します
resource、警告を抑制しますCloseable
restriction タイプのリソースの使用に関連し、非推奨または禁止されている参照の使用に関連する警告を抑制します。
serial、シリアル化可能なクラスの SerialVersionUID フィールドの省略に関連する警告を抑制します。
static-access、不正な静的アクセスに関連する警告を抑制します
static-method、静的に宣言されている可能性のあるメソッドに関連する警告を抑制します
super、スーパーコールを含まない置換メソッドに関連する警告を抑制します
Synthetic-access、警告を抑制します内部クラスへの最適化されていないアクセスに関連する
sync-override、同期メソッドのオーバーライドによる同期の失敗に関連する警告を抑制します
unchecked、未チェックのジョブに関連する警告を抑制します
unqualified-field-access、未修飾に関連する警告を抑制しますフィールド アクセス
unused、未使用のコードおよび無効なコードに関連する警告を抑制します

Javaアノテーションの使い方 Annotaton

メタ アノテーション

  • 保持期間はスコープを指定しますアノテーションの、SOURCE、CLASS、RUNTIMEの3種類

  • Targetでアノテーションを指定します。 javadoc に反映されます

  • ##Inherited サブクラスは親クラスのアノテーションを継承します

  • Retention

  • #RetentionPolicy.SOURCE: コンパイラーが使用した後、コメントを直接破棄します。

    RetentionPolicy.CLASS: コンパイラー アノテーションをクラス ファイルに記録します。JVM は実行時にアノテーションを保持しません。 java
  • RetentionPolicy.PUNTIME: コンパイラはクラス ファイルに注釈を記録し、JVM は java
  • Retention の実行時に注釈を保持します。 case
  • #@最下層をオーバーライドします (IDEA が最下層に入るショートカット キーは

    Ctrl

  • B
)
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)//表示@Override在编译器使用后,直接丢弃注释
public @interface Override {
}
Target

ターゲットの値

@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
//   1.CONSTRUCTOR:用于描述构造器
    2.FIELD:用于描述域
    3.LOCAL_VARIABLE:用于描述局部变量
    4.METHOD:用于描述方法
    5.PACKAGE:用于描述包
    6.PARAMETER:用于描述参数
    7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
ターゲット ケース

@非推奨の基礎となる

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})//表示@Documented在这些地方可以写注解
public @interface Deprecated {
}

文書化された
文書化されたケース
@非推奨の最下層

@Documented//@Deprecated代码会被保存到生产的文档中
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}

Inherited

それによって変更されたアノテーションは継承を持ちます。クラスが @Inherited によって変更されたアノテーションを使用する場合、そのサブクラスは自動的にこのアノテーションを持ちます

以上がJavaアノテーションの使い方 Annotatonの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。