将泛型T转换为Object []

时间:2016-08-26 12:48:05

标签: java generics

是否可以将泛型转换为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[][]>

1 个答案:

答案 0 :(得分:2)

当然,这是可能的;说:

T whatever = ... coming from somewhere

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

如果这是一个好主意;这可能是一个很多不同的讨论。但是为了进行讨论,我们必须看到更多的“背景” - 你的要求是什么;那课的意图是什么;它应该用那些对象数组做什么?!

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