`
hitwangzhuo
  • 浏览: 33663 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

java不支持创建泛型数组(2)

阅读更多
      在javaeye看到一篇文章,介绍了一个“伪解决方案”,使用Arrays反射来创建数组的,但前提是从传入的参数中获取该泛型的一个实例,从而获取它的类型。不过俺觉得可能有漏洞,就是满足不了空数组的情况,这也许是另一个“伪”处所在。
     貌似C#是支持创建泛型数组。不过俺不评论语言,俺只关心如何解决问题。
      其实用List就可以了,你在你的工具方法外是知道类型的,toArray转换一下,多一行代码又累不死人。
      好了,先记个思路,有空再回来写个test。
分享到:
评论

相关推荐

    java不支持创建泛型数组(1)

    在Java编程语言中,"java不支持创建泛型数组(1)"这个标题揭示了一个重要的概念,即Java不直接允许我们创建带有类型参数的泛型数组。这是因为Java的泛型是类型擦除的,这意味着在编译后,所有的泛型信息都会被移除,...

    Java泛型_Java中的泛型结构_

    - 创建泛型数组需要特殊语法,如 `T[] array = (T[]) new Object[10];` - 由于类型擦除,泛型数组不能直接通过 `new T[10]` 创建,这会导致编译错误。 7. 泛型与多态: - 泛型类和泛型方法可以很好地与多态结合...

    Java泛型总结(2)进阶篇

    创建泛型数组有一定的限制,因为类型擦除会导致潜在的类型不匹配问题。通常,我们应该避免直接创建泛型数组,而是使用集合框架,如ArrayList。 6. 泛型与多态 泛型与多态结合使用,可以实现更灵活且类型安全的...

    java 用泛型参数类型构造数组详解及实例

    总之,虽然Java泛型不直接支持创建泛型数组,但通过反射API,我们可以动态地创建指定类型的数组。这种方法在处理不确定类型的场景下非常有用,但需要注意,反射API的使用应当谨慎,因为它可能会降低代码的性能,且...

    java 数组求和计算

    - **泛型数组**:Java 5引入了泛型,允许创建泛型数组以增强类型安全性。 - **数组操作函数**:Java的`Arrays`类提供了许多实用方法,如`sort()`排序数组,`equals()`比较数组内容,`copyOf()`复制数组等。 - **...

    java5泛型新特性 pdf

    7. **泛型数组**:Java不支持直接创建泛型数组,因为类型擦除会导致编译器无法检查数组元素类型。但是,可以通过类型转换间接创建,如`List[] stringLists = (List[]) new List[10];`,但这种操作存在潜在风险。 8....

    Java1.5泛型指南中文版

    创建泛型数组会引发警告,因为Java不允许创建这样的数组。 ### 8. Class Literals as Run-time Type Tokens #### Class对象作为运行时类型令牌 在Java中,`Class`对象可以作为运行时类型令牌使用。这意味着可以...

    java泛型指导(挺全的)

    由于类型擦除的存在,Java不支持创建泛型数组。因为编译器无法确定创建的具体类型,这会导致运行时错误。但是可以通过其他方式间接创建泛型数组,例如使用反射。 #### 10. 泛型与继承的关系 泛型与继承之间的关系...

    Java数组堆栈

    由于Java不支持直接创建泛型数组,所以声明数组为Object类型的,然后转型即可。 构造方法 ArrayStack类提供了一个无参构造方法,该方法创建一个空的泛型栈,大小为SIZE(默认为10)。在构造方法中,初始化了数组和...

    关于java基础的泛型的练习

    - 由于历史原因,Java不支持泛型数组的直接创建,如`new MyList[5]`是非法的。 - 可以通过类型安全的工厂方法或运行时转型解决这个问题。 通过以上知识点,我们可以看到Java泛型在编程中的重要性和灵活性。理解和...

    java数组练习与学习

    在Java中,无法直接创建泛型数组,但可以通过数组的组件类型创建非泛型数组,然后用泛型方法进行操作。 9. **数组作为方法参数**: 可以将数组作为方法参数传递,此时数组是按引用传递的,意味着方法内对数组的...

    Java-泛型.ppt

    因此,直接创建泛型数组是不可行的,但可以通过其他方式间接实现。 #### 七、泛型与反射 反射可以用来获取类的泛型信息,但这需要一定的技巧。Java反射API提供了获取泛型信息的方法,但需要注意的是,由于类型擦除...

    java【第4章:数组与方法】_Java新特性对数组的支持

    1. 泛型数组:自Java 5引入泛型以来,可以创建泛型类型的数组,这提高了代码的类型安全性和可读性。例如,`List[] stringLists = new List[5];` 2. 遍历增强:Java 5引入了for-each循环,简化了遍历数组的操作。...

    java泛型技术之发展

    - **泛型方法**:如Arrays.sort()可以接受泛型数组并进行排序。 5. **限制与注意事项** - **类型擦除**:泛型信息在运行时不可用,无法在运行时获取泛型类型。 - **不能实例化类型参数**:如 `new T()` 是不允许...

    accp5.0java第八章 数组

    9. **数组与泛型**:在Java泛型中,可以创建泛型数组,但不能直接创建类型参数的数组,如`T[] array = new T[10];`是不允许的。需要使用类型擦除的技巧或绕过此限制。 10. **内存管理**:Java的垃圾回收机制会自动...

    java数组资料

    在Java编程语言中,数组是一种重要的...通过深入研究和实践,可以掌握更多高级用法,如泛型数组、数组作为方法参数传递、数组的异常处理等。"在线课第2节_数组"可能进一步探讨这些话题,提供实例和练习,帮助加深理解。

    Java泛型学习【转自百度百科】

    1. 泛型与数组的不兼容:由于历史原因,Java不支持直接创建泛型数组,但可以通过反射等方式间接实现。 2. 等效的泛型数组创建方式:`Box[] boxArray = (Box[]) new Box[10];` 七、泛型与多态 1. 泛型与多态结合:...

    Java 基础(4-8) - 泛型机制详解.pdf

    5. **泛型数组**:虽然Java中不能直接创建泛型数组,但可以通过类型擦除后的原始类型创建,如`Number[] array = new Integer[10];`。 **深入理解泛型** 1. **类型擦除**:编译后,所有泛型信息都会被擦除,比如`...

    java泛型,java知识

    直接创建泛型数组是非法的,如`T[] array = new T[10];`,但可以通过反射或其他方式间接实现。 9. 类型推断 - 自JDK 7开始,Java引入了类型推断(Type Inference),使得在某些情况下可以省略类型参数,编译器会...

Global site tag (gtag.js) - Google Analytics