2017-07-13 7 views
1

メソッドを実装するときにインターフェイスの名前を含める方法はありますか?私が3つのインターフェースを実装しなければならない場合、実装されたメソッドがどこから来るか私に思い出させるのは難しいでしょう。メソッドを実装するときにインターフェイスの名前を含める方法はありません

同じメソッド名を実装するために2つのインタフェースが必要な場合。私はどの方法を実装しているのかをどのように伝えることができますかこの方法の

public interface BarInt { 
void method(); 
} 
public interface GeeInt{ 
void method(); 
} 
public class Foo implements BarInt, GeeInt{ 

@Override 
public void method() { 
    // TODO Auto-generated method stub 

} 
} 

おかげ

+0

いつでもコメントを残すことができます。 – shmosel

+0

私は知っていますが、Javaの技術的な方法はありますか? –

+1

メソッド名は常に*メソッドが何をしているかを表す*。メソッドが宣言されたインタフェースは、*技術的な詳細*であり、コードの読者にとって有益な情報はありません。 –

答えて

-2

デザイン賢明な名前は、メソッドが何を反映することになると、あなたは方法が所属するインタフェースと共存関係することができるはずです。

賢明なことに、ほとんどのエディタは、実装されたインターフェイスとメソッドをいくつかのキーストローク/クリックで利用します。

1

はい、あなただけの@see Javadocコメント

public interface BarInt { 
    void method(); 
} 

public class Foo implements BarInt{ 

    /** 
    * @see BarInt#method() 
    */  
    @Override 
    public void method() { 
     // TODO Auto-generated method stub 
    } 
} 
+0

これは悪い考えではありませんが、生成されたjavadocには、そのメソッドが実装しているインタフェースメソッドへのリンクが既に存在することには注意してください。 [String.length()]のドキュメント(** http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#length-html)の** Specified by:**セクションに注目してください。 - )。 – VGR

+0

@VGR確かに、これは問題だったコードの中にあるでしょう。私が私の前にソースを持っていれば、私はjavadocを見ると思っていません。もちろん、IDEを使って定義にジャンプするだけですが、OPが要求したものです – Novaterata

0

良いでNovaterataの答えを使用することができ、これは注釈と同様のアプローチです。


いつでも自分の注釈をロールすることができます。バイトコードの一部ではありませんSourceretention policyアノテーションで

@Source(List.class) 
@Override 
public boolean add(Object o) { 
    return false; 
} 

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

@Target(ElementType.METHOD) 
@Retention(RetentionPolicy.SOURCE) 
public @interface Source { 

    Class value(); 

} 

次に、あなたがこのようにそれを使用することができます。これは、リーダー、IDE、およびコンパイラの追加情報としてのみ機能します。

関連する問題