java 泛型 class< >_Java泛型和Class类用法示例

本文介绍了Java中Class类的泛型使用,通过示例展示了如何利用泛型避免强制类型转换,以及如何使用Class类配合泛型进行实例化操作。此外,还演示了如何使用反射API创建数组,包括一维和二维数组,并提供了相关的代码实现。
摘要由CSDN通过智能技术生成

本文实例讲述了Java泛型和Class类用法。分享给大家供大家参考,具体如下:

一 点睛

从JDK1.5之后,Java的Class类增加了泛型功能,从而允许使用泛型来限制Class类,例如,String.class 的类型实际上是Class。 使用Class泛型可以避免强制类型转换。

二 实战1

import java.util.*;

import javax.swing.*;

public class CrazyitObjectFactory2

{

public static T getInstance(Class cls)

{

try

{

return cls.newInstance();

}

catch(Exception e)

{

e.printStackTrace();

return null;

}

}

public static void main(String[] args)

{

// 获取实例后无须类型转换

Date d = CrazyitObjectFactory2.getInstance(Date.class);

JFrame f = CrazyitObjectFactory2.getInstance(JFrame.class);

}

}

三 实战2

1 代码

import java.lang.reflect.*;

import java.lang.annotation.*;

public class CrazyitArray

{

// 对Array的newInstance方法进行包装

@SuppressWarnings("unchecked")

public static T[] newInstance(Class componentType, int length)

{

return (T[])Array.newInstance(componentType , length); //①

}

public static void main(String[] args)

{

// 使用CrazyitArray的newInstance()创建一维数组

String[] arr = CrazyitArray.newInstance(String.class , 10);

// 使用CrazyitArray的newInstance()创建二维数组

// 在这种情况下,只要设置数组元素的类型是int[]即可。

int[][] intArr = CrazyitArray.newInstance(int[].class , 5);

arr[5] = "疯狂Java讲义";

// intArr是二维数组,初始化该数组的第二个数组元素

// 二维数组的元素必须是一维数组

intArr[1] = new int[]{23, 12};

System.out.println(arr[5]);

System.out.println(intArr[1][1]);

}

}

2 运行

疯狂Java讲义

12

希望本文所述对大家java程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值