1

この宣言を持つ関数Bがあります。

public void B(Class<? extends C> clazz);

次のようなクラスAとクラスCがあります。

public interface C {}
public class A implements C{}

私はこれをしたいと思います:

B(A.class);

しかし、Javaは私にこれをしてほしいと思っています(そして、チェックされていないキャストについて不平を言います)

B( (Class<? extends C>)A.class );

これがすべてタイプセーフであることをJavaに示すにはどうすればよいですか?

4

1 に答える 1

0

私のために働く:

interface C {}
class A implements C {}

public class Test {

    private static void foo(Class<? extends C> clazz) {
    }

    public static void main(String[] args) {        
        foo(A.class);
    }
}

おそらく、何が失敗しているのかについての短いが完全な例を投稿することができますか?

于 2012-06-19T21:31:39.620 に答える