如何在Java中创建类型安全的通用数组?

约瑟夫·佩斯

我想在Java中创建一个通用数组,以维护Java通常提供的类型安全。

我正在使用此代码:

class Stack<T> { 

private T[] array = null;
public Stack(Class<T> tClass, int size) {
   maximumSize = size;
   // type unsafe
   //array = (T[])new Object[maximumSize];

   this.array = (T[])java.lang.reflect.Array.newInstance(tClass,maximumSize);
}

此代码类型安全吗?如果是这样,为什么?为什么它是类型安全的,我需要强制转换?

Sotirios Delimanolis

Array.newInstance(..)方法的返回类型为Object因此,您不能将其直接分配给以外的任何其他对象Object因此,您需要演员表。

该方法委托给一个native方法

创建具有指定组件类型和长度的新数组

因此,它正在创建一个type数组T

类型安全性,假设array声明为

T[] array;

,由Class<T>参数和使用相同类型变量的类型转换来保证。

您应该添加

@SuppressWarnings("unchecked")

在源代码中带有解释上述原因的注释。总是评论为什么您要取消警告的演员是安全的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中创建通用方法?

来自分类Dev

如何在Scala中创建通用类型的对象/单例?

来自分类Dev

如何在通用Lisp中创建位数组?

来自分类Dev

如何在Java中声明通用键值对数组

来自分类Dev

如何在 Java 中删除数组通用对象 Sack

来自分类Dev

如何在Java中设计类型安全消息API?

来自分类Dev

如何在Java中设计类型安全消息API?

来自分类Dev

从Clojure中的类型特定的数组创建通用数组

来自分类Dev

无法在Java中创建...的通用数组

来自分类Dev

Java中通用数组创建的知识

来自分类Dev

无法在Java中创建...的通用数组

来自分类Dev

如何在Java中安全地访问数组线程?

来自分类Dev

我们如何创建通用数组扩展来汇总Swift中的数字类型?

来自分类Dev

如何在ada中打印通用类型?

来自分类Dev

如何在通用方法中检查通用类型

来自分类Dev

如何在MATLAB中创建通用结构?

来自分类Dev

如何在Scala中创建通用列表monoid来维护所涉及列表的内部类型?

来自分类Dev

如何在F#中创建通用C#类型的实例?

来自分类Dev

如何在Jackson中为通用类型创建自定义解串器?

来自分类Dev

如何在Flutter中创建通用参数类型的小部件函数

来自分类Dev

如何在F#中创建通用C#类型的实例?

来自分类Dev

如何创建使用类型安全动作AsyncCreator来简化Redux中api请求流的处理的通用异步请求史诗

来自分类Dev

如何在Java通用方法中正确返回通用数组?

来自分类Dev

如何在Java中将通用列表转换为通用数组?

来自分类Dev

如何在Java中编辑类类型数组中的元素?

来自分类Dev

如何在Kotlin中创建一个由空值填充的通用数组?

来自分类Dev

如何在TypeScript中创建将其他类型组合在一起的通用类型?

来自分类Dev

如何在Swift中向通用类型添加类型方法?

来自分类Dev

如何在TypeScript中按通用类型过滤类型列表?

Related 相关文章

  1. 1

    如何在Java中创建通用方法?

  2. 2

    如何在Scala中创建通用类型的对象/单例?

  3. 3

    如何在通用Lisp中创建位数组?

  4. 4

    如何在Java中声明通用键值对数组

  5. 5

    如何在 Java 中删除数组通用对象 Sack

  6. 6

    如何在Java中设计类型安全消息API?

  7. 7

    如何在Java中设计类型安全消息API?

  8. 8

    从Clojure中的类型特定的数组创建通用数组

  9. 9

    无法在Java中创建...的通用数组

  10. 10

    Java中通用数组创建的知识

  11. 11

    无法在Java中创建...的通用数组

  12. 12

    如何在Java中安全地访问数组线程?

  13. 13

    我们如何创建通用数组扩展来汇总Swift中的数字类型?

  14. 14

    如何在ada中打印通用类型?

  15. 15

    如何在通用方法中检查通用类型

  16. 16

    如何在MATLAB中创建通用结构?

  17. 17

    如何在Scala中创建通用列表monoid来维护所涉及列表的内部类型?

  18. 18

    如何在F#中创建通用C#类型的实例?

  19. 19

    如何在Jackson中为通用类型创建自定义解串器?

  20. 20

    如何在Flutter中创建通用参数类型的小部件函数

  21. 21

    如何在F#中创建通用C#类型的实例?

  22. 22

    如何创建使用类型安全动作AsyncCreator来简化Redux中api请求流的处理的通用异步请求史诗

  23. 23

    如何在Java通用方法中正确返回通用数组?

  24. 24

    如何在Java中将通用列表转换为通用数组?

  25. 25

    如何在Java中编辑类类型数组中的元素?

  26. 26

    如何在Kotlin中创建一个由空值填充的通用数组?

  27. 27

    如何在TypeScript中创建将其他类型组合在一起的通用类型?

  28. 28

    如何在Swift中向通用类型添加类型方法?

  29. 29

    如何在TypeScript中按通用类型过滤类型列表?

热门标签

归档