0

Java で次のインターフェイスを宣言しました。

public interface ITest {
    void doStuff();
}

これは、doStuff() メソッドを上書きする別のいくつかのクラスによって実装されます。次に、このインターフェイスを関数の型として使用します。

public gonnaDoSomeStuff(ITest fun) {
    fun.doStuff();
}

ただし、Java (および Eclipse) は、このメソッドはタイプ ITest に対して未定義であると述べています。私は何を間違っていますか?

4

2 に答える 2

0

私の goingDoSomeStuff メソッドを含むクラスには、実際のインターフェイスの代わりに参照されていたジェネリックが追加されていることがわかりました。

違う

public class Dog<ITest> {
    public gonnaDoSomeStuff(ITest fun) {
        // ...
    }
}

public class Dog {
    public gonnaDoSomeStuff(ITest fun) {
        // ...
    }
}
于 2012-09-21T19:21:39.963 に答える
-3

スコープが制限されているため、パブリック クラスで宣言されたデフォルトのメソッドにアクセスすることはできません。public クラスで呼び出すには public として宣言する必要があります。

于 2012-09-18T17:47:27.447 に答える