Java泛型和Class類用法示例
本文實(shí)例講述了Java泛型和Class類用法。分享給大家供大家參考,具體如下:
一 點(diǎn)睛
從JDK1.5之后,Java的Class類增加了泛型功能,從而允許使用泛型來限制Class類,例如,String.class 的類型實(shí)際上是Class<String>。 使用Class<T>泛型可以避免強(qiáng)制類型轉(zhuǎn)換。
二 實(shí)戰(zhàn)1
import java.util.*;
import javax.swing.*;
public class CrazyitObjectFactory2
{
public static <T> T getInstance(Class<T> cls)
{
try
{
return cls.newInstance();
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
public static void main(String[] args)
{
// 獲取實(shí)例后無須類型轉(zhuǎn)換
Date d = CrazyitObjectFactory2.getInstance(Date.class);
JFrame f = CrazyitObjectFactory2.getInstance(JFrame.class);
}
}
三 實(shí)戰(zhàn)2
1 代碼
import java.lang.reflect.*;
import java.lang.annotation.*;
public class CrazyitArray
{
// 對(duì)Array的newInstance方法進(jìn)行包裝
@SuppressWarnings("unchecked")
public static <T> T[] newInstance(Class<T> componentType, int length)
{
return (T[])Array.newInstance(componentType , length); //①
}
public static void main(String[] args)
{
// 使用CrazyitArray的newInstance()創(chuàng)建一維數(shù)組
String[] arr = CrazyitArray.newInstance(String.class , 10);
// 使用CrazyitArray的newInstance()創(chuàng)建二維數(shù)組
// 在這種情況下,只要設(shè)置數(shù)組元素的類型是int[]即可。
int[][] intArr = CrazyitArray.newInstance(int[].class , 5);
arr[5] = "瘋狂Java講義";
// intArr是二維數(shù)組,初始化該數(shù)組的第二個(gè)數(shù)組元素
// 二維數(shù)組的元素必須是一維數(shù)組
intArr[1] = new int[]{23, 12};
System.out.println(arr[5]);
System.out.println(intArr[1][1]);
}
}
2 運(yùn)行
瘋狂Java講義
12
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
springboot2+mybatis多種方式實(shí)現(xiàn)多數(shù)據(jù)配置方法
這篇文章主要介紹了springboot2+mybatis多種方式實(shí)現(xiàn)多數(shù)據(jù)配置方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Java基于UDP協(xié)議實(shí)現(xiàn)簡(jiǎn)單的聊天室程序
這篇文章主要為大家詳細(xì)介紹了Java基于UDP協(xié)議實(shí)現(xiàn)簡(jiǎn)單的聊天室程序的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07
Java OpenCV實(shí)現(xiàn)人臉識(shí)別過程詳解
這篇文章主要介紹了Java OpenCV實(shí)現(xiàn)人臉識(shí)別過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Java 按照字節(jié)來截取字符串的代碼(不會(huì)出現(xiàn)半個(gè)漢字)
Java 按照字節(jié)來截取字符串的工具,不會(huì)出現(xiàn)半個(gè)漢字。一個(gè)中文兩個(gè)字節(jié),一個(gè)英文字符只占 1 個(gè)字節(jié)** 1. 通常我們用于前端顯示的時(shí)候,防止標(biāo)題過長(zhǎng)2014-01-01
springboot動(dòng)態(tài)調(diào)整日志級(jí)別的操作大全
這篇文章主要介紹了springboot動(dòng)態(tài)調(diào)整日志級(jí)別的方法,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
Java service層獲取HttpServletRequest工具類的方法
今天小編就為大家分享一篇關(guān)于Java service層獲取HttpServletRequest工具類的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12
Java使用ffmpeg和mencoder實(shí)現(xiàn)視頻轉(zhuǎn)碼
這篇文章主要為大家詳細(xì)介紹了Java使用ffmpeg和mencoder實(shí)現(xiàn)視頻轉(zhuǎn)碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12

