java - 将泛型 T 转换为 Object[]

标签 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[][]>

最佳答案

当然,这是可能的;说:

T whatever = ... coming from somewhere

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

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

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

关于java - 将泛型 T 转换为 Object[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39166740/

相关文章:

java - 错误 : Element value must be a constant expression

java - 如何从放心的 JsonPath 中获取 List<JsonPath>

java - 实现一组名为 `toJson()` 的 Java 泛型函数

java - 实例化通用对象

java - 将未知泛型类型与 List 类一起使用

java - 如何将字符串转换为泛型类型<E>?

java - Android 10 (Q) ACCESS_BACKGROUND_LOCATION 权限

java - 文本文件编码为UTF_8?

Java:为什么不使用 XX:SurvivorRatio 的默认值?

java - 检查 args[0] 是否不包含元素?