私はJava 8のデフォルトメソッドについて読んでいましたが、1つのことに固執しました - それを実装せずにインターフェイスからデフォルトメソッドを呼び出す方法や動的プロキシを使用する方法がありますか?次の方法のように、単純な方法を使用することにより:リフレクションと動的プロキシを使用せずに、明示的にデフォルトメソッドを明示的に呼び出す方法はありますか?
interface DefaultTestInterface{
default void method1(){
//default method
}
}
class ImplementingClass implements DefaultTestInterface{
public void method1(){
//default method invocation in implementing method
DefaultTestInterface.super.method1();
}
void method2(){
//default method invocation in implementing class
DefaultTestInterface.super.method1();
}
}
public class Main {
public static void main(String[] args) {
//is there any way to simply invoke default method without using proxy and reflection?
}
}
を私は同様の質問を読んで、しかしfirstは実装方法でのみ呼び出しを接続して、残りの2つはdynamic Proxy using reflectionと reflectionに接続されていました。
これらのソリューションは非常に複雑で、簡単な方法があれば迷っています。私はそれらの記事も読んでいましたが、私の問題の解決策は見つかりませんでした。私はどんな助けにも感謝しています。
したがってインスタンスなしでインスタンスメソッドを使用したいですか? – fabian
ご質問には多少の混乱があります。 Java 8インターフェースの* defaultメソッド*はすでに実装されています。別の実装が必要なクラス固有の動作がない場合は、デフォルトとして使用するメソッドを省略してインタフェースを実装するだけです。代わりに* static *キーワードを使用してメソッドを定義する*インタフェース*からメソッドを呼び出す場合。 –
いいえ@ fabian、私は何とかインスタンス化されたソリューションについて考えていました。 –