`

Java基础 创建泛型数组

阅读更多

Java创建泛型数组一种实现方式,在Java中创建泛型数组的唯一方式就是创建一个被擦除类型的新数组,然后对其进行转型。

public class GenericArrayWithTypeToken<T> {

	private T[] array;

	@SuppressWarnings("unchecked")
	public GenericArrayWithTypeToken(Class<T> type, int sz) {
		array = (T[]) Array.newInstance(type, sz);
	}

	public void put(int index, T item) {
		array[index] = item;
	}

	public T get(int index) {
		return array[index];
	}

	public T[] rep() {
		return array;
	}

	public static void main(String[] args) {
		GenericArrayWithTypeToken<Integer> gai = new GenericArrayWithTypeToken<>(
				Integer.class, 10);
		Integer[] ia = gai.rep();
	}
}

 

分享到:
评论

相关推荐

    泛型自定义数组大小

    - **数组的排序**:如果需要对泛型数组进行排序,可以利用Java的`Collections.sort()`方法(对于集合)或`Arrays.sort()`方法(对于数组),但需要注意,数组的元素必须实现了`Comparable`接口或提供自定义的`...

    实例185 - 自定义泛型化数组类

    这个实例185可能是进一步讨论泛型数组类如何应用于实际项目,例如作为缓存、队列或其他数据结构的基础,或者作为工具类帮助处理不同类型的数据集。标签中的"源码"表明可能有具体的代码实现供学习,而"工具"可能意味...

    关于java基础的泛型的练习

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

    Java课件 (包括基础语法,数组与语句,面向对象编程,java异常处理,java常用基础类,java集合与泛型

    1. **基础语法**:Java的基础语法是学习任何编程语言的起点。这包括变量声明、数据类型(如整型、浮点型、字符型和布尔型)、运算符(算术、比较、逻辑等)、流程控制(如if语句、switch语句、for循环、while循环)...

    accp5.0java第八章 数组

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

    Java泛型和集合-英文版

    10. 泛型的限制(Restrictions on Wildcards):泛型在使用时有一定的限制,比如不能创建泛型数组,不能实例化泛型类型变量等。理解这些限制有助于避免在编写泛型代码时发生错误。 由于书籍的作者是Maurice ...

    Java数组堆栈

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

    java数组练习与学习

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

    java集合 框架 泛型

    例如,ArrayList是以动态数组为基础的列表实现,适合随机访问,而LinkedList则适用于频繁插入和删除的场景。Set接口不允许重复元素,而List允许。Queue接口则用于表示先进先出的数据结构,如队列。 泛型是Java集合...

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

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

    JAVA学习笔试(数据基础+泛型编程)-适合小白

    本笔记主要涵盖了数据基础和泛型编程两大主题,同时也涉及到类和对象、数据类型、类的初始化和加载以及单例模式等多个知识点。 1. **数据基础** - **形参实参的使用**:在函数调用时,形参是方法定义中的参数,而...

    传智播客Java教程 Java基础答疑公开课(一)

    5. 创建泛型数组的特殊性:由于类型擦除,直接创建泛型数组是不被允许的,需要使用特殊方式来创建。 通过这两个视频教程,学习者不仅可以了解泛型的基本概念,还能深入理解其在实际编程中的应用,这对于提升Java...

    Java泛型简明教程借鉴.pdf

    虽然可以创建泛型数组,但需要特别注意类型安全问题,因为泛型数组在运行时会擦除类型信息。 ```java Apple[] apples = new Apple[1]; Fruit[] fruits = apples; fruits[0] = new Strawberry(); // 编译时通过,...

    java数组资料

    "java数组资料"这个主题涵盖了Java基础知识的核心技术,特别是关于数组的知识。数组允许程序员在单个变量中存储一组相同类型的数据,这对于处理批量数据或者执行批量操作非常有用。 1. **数组的概念与定义** - ...

    Java 基础泛型.pdf

    `createPair()`静态方法使用类型参数创建`Pair`对象,`max()`静态方法则利用了类型参数的上下限限制,只接受实现了`Comparable`接口的类型数组,并返回最大值。 综上所述,Java泛型通过引入类型参数和相关的约束,...

    04_Java基础语法_(数组)_讲义

    Java是一种广泛使用的面向对象的编程语言,其强大的功能...这份“04_Java基础语法_(数组)_讲义”文档将详细解析数组的各个方面,助你巩固这方面的知识。阅读并实践其中的例子,将有助于你更好地理解和运用Java数组。

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

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

    java泛型集合 java集合 集合 java Collection

    首先,Java泛型是一种在编译时提供类型安全性的机制,它允许我们在创建集合时指定元素的类型。这样可以防止在运行时出现ClassCastException,因为编译器会在代码执行前检查类型匹配。例如,我们可以声明一个只包含...

    Java基础知识笔试题及答案

    本资源汇总了 Java 基础知识笔试题及答案,涵盖了 Java 的基本概念、数据类型、运算符、控制结构、函数、数组、集合框架、泛型等方面的知识点。 一、Java 基本概念 Java 是一种面向对象的编程语言,它具有五个基本...

    java面向程序设计数组、字符串、枚举、泛型的应用[参照].pdf

    Java编程语言是软件开发中的核心工具,尤其在面向对象程序设计中,数组、字符串、枚举和泛型是基础且重要的概念。这篇实验报告主要涵盖了这些知识点的应用。 1. **数组**:数组是Java中存储固定数量相同类型元素的...

Global site tag (gtag.js) - Google Analytics