Java 将泛型T强制转换为对象[]

Java 将泛型T强制转换为对象[],java,generics,Java,Generics,是否可以将泛型强制转换为对象[]如果不可以,方法是什么 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

是否可以将泛型强制转换为对象[]如果不可以,方法是什么

 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{
公共方法()
{
T castObject=(T)值;
//类型连接中的方法createArrayOf(String,Object[])不适用于参数(String,T)
//所以方法签名是createArrayOf(字符串,对象[])
数组=connection.createArrayOf(“整数”,castObject);
}
}
但是我想用这个通用的作为下一个:

OneClass<Integer[]>
OneClass

OneClass

当然,这是可能的;说:

T whatever = ... coming from somewhere

Object[] castedObjects = (Object[]) whatever;
如果这是个好主意;这可能是一个完全不同的讨论。但为了进行讨论,我们必须看到更多的“背景”——你的要求是什么;该类课程的目的是什么;它应该如何处理这些对象数组


但你眼前的问题很容易解决;如上所示。

您似乎误解了强制转换的语法。如果要强制转换到
对象[]
,请在更新时使用
(对象[])
,而不是使用
(T)
;我仍然认为我的答案解决了“铸造”问题。你的代码看起来仍然很奇怪;至少java.lang.Array只有静态方法;因此,实例化它绝对没有意义。但可能是其他数组类…@GhostCat,它是
java.sql.Array
。请注意,强制转换不会进行任何类型的转换:这仅在泛型值实际上是
对象[]
时才起作用。如果要求它是一个
对象[]
,那么让它成为泛型没有多大意义。
T whatever = ... coming from somewhere

Object[] castedObjects = (Object[]) whatever;