私の問題は次のとおりです:
静的メソッド、つまりvoid load()
を実装するための実装を必要とするインターフェイスがあります。ただし、Java 8までは、インターフェイスで静的メソッドを取得できないようです。ユーザーが正しく実装することを信頼していますが、問題は適切なドキュメントの作成方法です。
このインターフェースの実装は最大50あり、javadocを継承できないのは面倒です。
私の場合、続行する最良の方法は何ですか?ランダムな実装を文書化し、他に@see
注釈を追加する必要がありますか?汚れているようです。
どんな提案でも大歓迎です。
あなたが述べたように、インターフェイスが静的メソッドを必要とする方法はありません(Java 8まで)。静的メソッドをオーバーライドする方法もないので、どのドキュメントが実際に継承されますか?
いくつかのオプションが表示されます:
インターフェイスのドキュメントにメソッドが記述されている場合(私はそれを期待します-実装者はload()
メソッドについてどのように知っているはずですか?)、すべての実装のドキュメントにリンクします。
/ ** {@link Loadable}が予期する静的メソッドが必要です* /
load()
メソッドの適切なデフォルト実装がある場合は、インターフェースを実装する抽象クラスに配置し、すべての実装のドキュメントを(ランダムな実装ではなく)リンクします。
/ ** @See AbstractLoadable#load()* /
load()
メソッドのポリモーフィック機能を非静的メソッドに抽出します。インターフェースは新しいメソッドを明示的に要求でき、javadocはインターフェースからドキュメントを自動的に継承します。 (私はこれが実行可能なオプションではないかもしれないことを理解しています)