2

私はこのようなものを機能させようとしています:

private static <V, K> V<KnownType> from(K oldObject, Class<? extends V<KnownType>> newClass) {
    ...
}

ただし、このメソッドシグネチャにはコンパイラエラーが発生します。

タイプVはジェネリックではありません。引数でパラメータ化することはできません<KnownType>

基本的に、に変換するメソッドが必要KですV<KnownType>。これは可能ですか?

また、誰かがこのためのコードを書いた場合の追加のコンテキスト-すべてVの'には、を取り込む単一引数のコンストラクターがありKます。

前もって感謝します。

編集-入力クラスはVのサブクラスです。(? extends V...

4

2 に答える 2

3

仮定:

public interface SomeType<E>

これを試して:

private static <V extends SomeType<KnownType>, K> V from(K oldObject, Class<V> newClass) {
于 2012-11-12T02:01:14.687 に答える
0

Javaの型パラメーターは、型にのみ対応できます。あなたVはそれ自体が型をとる何か、型を操作するもののより高い「種類」になりたいのです。Javaのジェネリックは、より高い種類では機能しません。

于 2012-11-13T01:52:40.717 に答える