2012-04-02 8 views
21

Javaでは、定義されているがまだ実装されていないメソッドのための共通アノテーションまたは標準アノテーションがありますか?Java:「まだ実装されていません」の共通アノテート

私はawesomeMethodThatTotallyDoesExactlyWhatYouNeedを呼び出そうとしたとき、私はコンパイル時の警告を取得したい

@NotImplementedYet 
public void awesomeMethodThatTotallyDoesExactlyWhatYouNeed(){ /* TODO */ } 

のようなものが含まれているライブラリのプレアルファ版を使用していた場合、例えば、だから?

+2

ほとんどの図書館は、その方法を全く公開しません。ポイントは何ですか? –

+1

私はそれを[ユーザーとして]遭遇しました(https://github.com/NICTA/scoobi/issues/71)。多分、将来のAPIをアイデアとして浮かべて、ユーザーにそれを準備させてもいいでしょうか? – rampion

+0

もちろん、独自の「@ NotImplementedYet」アノテーションを作成して、それを使用することもできます。http://docs.oracle.com/javase/1.5.0/docs/guide/language/annotations.html – paulsm4

答えて

14

UnsupportedOperationExceptionを使用して、テストを実行するときに実装される予定のメソッドを検出することができます。

+2

OPは、メソッドがコンパイル時に 'UnsupportedOperationException'をスローすることを呼び出し側に通知するアノテーションを探しています。このような注釈を作成する側は簡単ですが、コンベンションとして受け入れられるものを探しています –

+0

解決策は要求されていませんが、何もしていないものよりも優れており、幾分直交しています(他の点では優れています)。 – bbarker

0

Googleはライブラリは変更する可能性があるAPIについて@Beta注釈を使用しますが、方法は、あなたがあなた自身の注釈を作成することができ

1

かかわら実装されています。実行時保存ポリシーを使用すると、必要に応じて、この注釈を探すためにターゲットビルドを設定することができます。

import java.lang.annotation.ElementType; 
import java.lang.annotation.Retention; 
import java.lang.annotation.RetentionPolicy; 
import java.lang.annotation.Target; 

@Target({ 
    ElementType.ANNOTATION_TYPE, 
    ElementType.METHOD, 
    ElementType.CONSTRUCTOR, 
    ElementType.FIELD}) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface Unimplemented { 

    boolean value() default true; 
}