19

Java でインターフェースに注釈を付けることができるユースケースがわかりません。

多分誰かが私に例を与えることができますか?

4

10 に答える 10

26

Spring でこれを使用して、アノテーションがすべてのサブクラスに適用されるインターフェースにアノテーションを付けました。たとえば、 Service インターフェースがあり、インターフェースの複数の実装がある場合でも、アノテーションに関係なくセキュリティ アノテーションを適用したいとします。その場合、インターフェイスに注釈を付けることが最も理にかなっています。

于 2008-09-28T18:25:12.520 に答える
5

私が取り組んでいる使用例は、javax/hibernate Bean の検証です。特定のクラスごとに検証を定義することを避けるために、インターフェイスを使用しています。

public interface IUser {
    @NotNull Long getUserId();
    ...
}

public class WebUser implements IUser {
    private Long userId;

    @Override
    public Long getUserId(){
        return userId;
    }
    ...
}
于 2014-09-05T21:10:19.710 に答える
4

例がなくても、説明するのは明らかです。インターフェイスは動作を記述し、アノテーションも記述できるため、それらをまとめることは論理的に一致します。

于 2008-09-28T20:25:26.523 に答える
4

私はfindbugsを広範囲に使用しています。注釈を使用して Nullity 制約を指定すると非常に便利です。実際に findbugs を使用しなくても、コードの意図がより明確になります。これらの注釈は、クラスと同じくらいインターフェイスに配置されます。それは一種の契約によるプログラミングであると主張することができます...

于 2008-09-28T19:34:38.003 に答える
1

さらに例を挙げますが、EJB3 のLocalおよびRemoteアノテーションです。Javaドキュメントによると、

インターフェイスで使用すると、そのインターフェイスをローカル ビジネス インターフェイスとして指定します。

ここでのユースケースは、インターフェースが注釈によって最もよく示される特別な機能を持っていることだと思います。

于 2008-09-28T18:12:43.567 に答える
1

多くの研究ツールがメソッド注釈を使用して、後で自動チェックを容易にするためにユーザーがプロトコルや制限などを指定できるようにするのを見てきました。

注釈は、それを使って何ができるかを指示するものではないため、ユーザーがインターフェースに注釈を付けることを許可しない正当な理由はありません。

于 2008-09-28T20:21:35.223 に答える
0

REST インターフェイスを定義するときに使用しました。RESTeasy では、注釈付きインターフェース (この例では RESTInterfaceV1) を使用する REST クライアントを作成できます。

final RESTInterfaceV1 client = ProxyFactory.create(RESTInterfaceV1.class, "http://localhost:8080/rest");

実際に REST インターフェイスを実装するオブジェクトにアノテーションを複製する必要がありますが、インターフェイス自体は、Java REST クライアントを作成したい人に個別に配布できます。

于 2011-11-01T03:35:47.693 に答える
0

コントラクト スタイルのプログラミングに使用できます。インターフェイス (型とメソッド名) を定義するだけでなく、セマンティクス (型の内容、前提条件、事後条件) も定義するだけではなく、さらに一歩進んでください。

ただし、アノテーションが Java でどのように機能するかを確認する必要がありますが、これは Python アノテーションを使用して簡単に行うことができます...

于 2008-09-28T18:41:08.490 に答える
0

インターフェイスを @Immutable でマークして、サブクラスの開発者にインターフェイスを実装するクラスが持つべき Mutability コントラクトを明確に示します。ゲーヘルが言うように、契約によるプログラミング。

于 2012-05-06T17:05:07.850 に答える
0

JBoss でアプリケーションをデプロイする場合、インターフェースで注釈を使用して、jmx-console でサービスをエクスポートできます。

于 2008-10-23T10:59:33.373 に答える