2016-08-25 3 views
1

注釈は継承することも、サブクラスには親レベルの注釈を含めることもできません。しかし、私は単純なシナリオを持っています。私はA、B、C、DのようなN個のクラスを持っているとします。
Aは、スーパークラスであり、私は次のようにそれを行う必要があり、これらのこれらのクラスの継承が必要な場合Bは、C、D .... Nは、子供すなわちA.Soのサブクラスである:Java8で注釈を継承する

class B extends A { 
    //code 
} 

class C extends A { 
    //code 
} 
...... 
class N extends A { 
    //code 
} 

したがって、クラスAをN回手動で拡張する必要があります。
私の質問は、@ParentIsClassAアノテーションのように作成できませんでした。これによって、子レベルのクラスは自動的にクラスAを拡張しますか?私が実装したい
サンプルコードは以下の通りです:

@ParentIsClassA 
class B { 
    //code 
} 

@ParentIsClassA 
class N { 
    //code 
} 
+1

私はそれが可能かどうか分かりませんが、間違いなく悪い考えだと思います。コードをあまり分かりにくくして、入力を減らそうとすると、実際には希望のバージョンが長くなります。 – comodoro

答えて

3

注釈は、一般的に、Javaのクラスのコンパイルを変更することはできません。 (ロンボク島は特別な脆弱コンパイラのフックを使用しています;のGroovyのASTを行うことができますあなたは何を言ってるのか。)と述べ

なぜextends節のようにその注釈を挿入する必要があります。そして、関係を理解し​​ていないIDEのような問題があります。通常の継承を使用して、ツールと他のプログラマを混同しないでください。

the @Inherited meta-annotationに興味があります。

+0

提案をいただきありがとうございます。私はこれを行うことができる@ Inheritedのコードサンプルを共有していただけますか? –

関連する問題