1
ジェネリックをObject []にキャストすることは可能ですか?ジェネリックTをObjectにキャストする
public class OneClass<T extends Serializable> {
public void someMethod()
{
T castObject = (T) value;
//The method createArrayOf(String, Object[]) in the type Connection is not applicable for the arguments (String, T)
//So method signature is createArrayOf(String, Object[])
Array array = connection.createArrayOf("integer", castObject);
}
}
しかし、私は次のようにこのジェネリックを使用するとよいでしょう:
OneClass<Integer[]>
または
OneClass<String[][]>
キャストの構文が間違っているようです。 'Object []'にキャストする場合は '(T)'ではなく '(Object [])'でキャストしてください。 – khelwood
アップデートあり。私はまだ私の答えは、 "キャスティング"問題を解決すると思う。あなたのコードはまだ変わっています。少なくともjava.lang.Arrayには** static **メソッドしかありません。だからそれをインスタンス化することには全く問題はない。しかし、それはおそらく他のいくつかのArrayクラスです。 – GhostCat
@GhostCat、それは 'java.sql.Array'です。 – Wyzard