最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中g(shù)eneric實(shí)例詳解

 更新時(shí)間:2017年11月25日 11:57:42   作者:indexman  
這篇文章主要介紹了java中g(shù)eneric實(shí)例詳解,具有一定參考價(jià)值,需要的朋友可以了解下。

一介紹:

在JavaSE1.5之前,沒有泛型的情況的下,通過對類型Object的引用來實(shí)現(xiàn)參數(shù)的“任意化”,“任意化”帶來的缺點(diǎn)是要做顯式的強(qiáng)制類型轉(zhuǎn)換,而這種轉(zhuǎn)換是要求開發(fā)者對實(shí)際參數(shù)類型可以預(yù)知的情況下進(jìn)行的。對于強(qiáng)制類型轉(zhuǎn)換錯(cuò)誤的情況,編譯器可能不提示錯(cuò)誤,在運(yùn)行的時(shí)候才出現(xiàn)異常,這是一個(gè)安全隱患。

泛型的好處是在編譯的時(shí)候檢查類型安全,并且所有的強(qiáng)制轉(zhuǎn)換都是自動和隱式的,提高代碼的重用率。

二、泛型參數(shù):

class Gen<T> {
	private T ob;
	//定義泛型成員變量
	public Gen(T ob) {
		this.ob = ob;
	}
	public T getOb() {
		return ob;
	}
	public void setOb(T ob) {
		this.ob = ob;
	}
	public void showType() {
		System.out.println("T的實(shí)際類型是: " + ob.getClass().getName());
	}
}
public class GenericParameter {
	public static void main(String[] args){
		//定義泛型類Gen的一個(gè)Integer版本
		Gen<Integer> intOb=new Gen<Integer>(100);
		intOb.showType();
		int i= intOb.getOb();
		System.out.println("value= " + i);
		System.out.println("----------------------------------");
		//定義泛型類Gen的一個(gè)String版本
		Gen<String> strOb=new Gen<String>("Hello Dylan!");
		strOb.showType();
		String s=strOb.getOb();
		System.out.println("value= " + s);
	}
}

output:

T的實(shí)際類型是: java.lang.Integer
value= 100
----------------------------------
T的實(shí)際類型是: java.lang.String
value= Hello Dylan!

三、泛型類:

class GenericsFoo<T> {
	private T x;
	public GenericsFoo(T x) {
		this.x = x;
	}
	public T getX() {
		return x;
	}
	public void setX(T x) {
		this.x = x;
	}
}
public class GenericClass {
	public static void main(String args[]){
		GenericsFoo<String> strFoo=new GenericsFoo<String>("Hello Generics!");
		GenericsFoo<double> douFoo=new GenericsFoo<double>(new double("33"));
		GenericsFoo<Object> objFoo=new GenericsFoo<Object>(new Object());
		System.out.println("strFoo.getX="+strFoo.getX());
		System.out.println("douFoo.getX="+douFoo.getX());
		System.out.println("objFoo.getX="+objFoo.getX());
	}
}

output:

strFoo.getX=Hello Generics!
douFoo.getX=33.0
objFoo.getX=java.lang.Object@1d0fafc

四 限制泛型:

import java.util.ArrayList;
import java.util.Collection;
class CollectionGenFoo<T extends Collection> {
	private T x;
	public CollectionGenFoo(T x) {
		this.x = x;
	}
	public T getX() {
		return x;
	}
	public void setX(T x) {
		this.x = x;
	}
}
public class GenericRestrict {
	public static void main(String[] args) {
		CollectionGenFoo<ArrayList> listFoo = null;
		listFoo = new CollectionGenFoo<ArrayList>(new ArrayList());
		CollectionGenFoo<? extends Collection> listFoo1 = null;
		listFoo1=new CollectionGenFoo<ArrayList>(new ArrayList());
		System.out.println("實(shí)例化成功!");
	}
}

output:
實(shí)例化成功!

五 泛型方法:

public class GenericFunction {
	public <T> void f(T x) {
		System.out.println(x.getClass().getName());
	}
	public static void main(String[] args) {
		GenericFunction ea = new GenericFunction();
		ea.f(" ");
		ea.f(10);
		ea.f('a');
		ea.f(ea);
	}
}

output:
java.lang.String
java.lang.Integer
java.lang.Character
GenericFunction

-----------------------------
dylan presents.

總結(jié)

以上就是本文關(guān)于java中g(shù)eneric實(shí)例詳解的全部內(nèi)容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Spring全局異常捕獲不生效問題的解決辦法

    Spring全局異常捕獲不生效問題的解決辦法

    Spring項(xiàng)目全局異常處理不生效,登錄接口報(bào)錯(cuò)異常信息被直接返回到接口響應(yīng)中,本文給大家介紹了Spring全局異常捕獲不生效問題的解決辦法,文中有詳細(xì)的圖文介紹,需要的朋友可以參考下
    2024-04-04
  • MyBatis中的表關(guān)聯(lián)查詢實(shí)現(xiàn)示例

    MyBatis中的表關(guān)聯(lián)查詢實(shí)現(xiàn)示例

    這篇文章主要介紹了MyBatis中的表關(guān)聯(lián)查詢實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 深入探究Java多線程并發(fā)編程的要點(diǎn)

    深入探究Java多線程并發(fā)編程的要點(diǎn)

    這篇文章主要介紹了深入探究Java多線程并發(fā)編程的要點(diǎn),包括關(guān)鍵字synchronized的使用和wait()與notify()獲取對象鎖的三種方式,需要的朋友可以參考下
    2015-11-11
  • Java volatile關(guān)鍵字特性講解上篇

    Java volatile關(guān)鍵字特性講解上篇

    JMM要求保證可見性、原子性、有序性,volatile可以保證其中的兩個(gè),本篇文章具體驗(yàn)證volatile的可見性,不原子性和禁重排,同時(shí)解決volatile的不保證原子性,讓代碼具有原子性
    2022-12-12
  • Windows下使用IDEA搭建Hadoop開發(fā)環(huán)境的詳細(xì)方法

    Windows下使用IDEA搭建Hadoop開發(fā)環(huán)境的詳細(xì)方法

    這篇文章主要介紹了Windows下使用IDEA搭建Hadoop開發(fā)環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java編程中void方法的學(xué)習(xí)教程

    Java編程中void方法的學(xué)習(xí)教程

    這篇文章主要介紹了Java編程中void方法的學(xué)習(xí)教程,包括對void方法進(jìn)行單元測試,需要的朋友可以參考下
    2015-10-10
  • Spring Security基于json登錄實(shí)現(xiàn)過程詳解

    Spring Security基于json登錄實(shí)現(xiàn)過程詳解

    這篇文章主要介紹了Spring Security基于json登錄實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot中jar打包并部署到Tomcat

    SpringBoot中jar打包并部署到Tomcat

    最近做了一個(gè)SpringBoot項(xiàng)目,今天介紹一下SpringBoot中jar打包并部署到Tomcat,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 使用SpringMVC 重寫、擴(kuò)展HttpServletRequest請求參數(shù)

    使用SpringMVC 重寫、擴(kuò)展HttpServletRequest請求參數(shù)

    這篇文章主要介紹了使用SpringMVC 重寫、擴(kuò)展HttpServletRequest請求參數(shù),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java字符編碼簡介_動力節(jié)點(diǎn)Java學(xué)院整理

    Java字符編碼簡介_動力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java字符編碼簡介,本文主要包括以下幾個(gè)方面:編碼基本知識,Java,系統(tǒng)軟件,url,工具軟件等,感興趣的朋友一起看看吧
    2017-08-08

最新評論

临城县| 彭水| 汝南县| 高淳县| 岳池县| 岫岩| 柏乡县| 松原市| 洪江市| 林周县| 宁陕县| 房山区| 林口县| 岳阳县| 浪卡子县| 繁昌县| 瑞昌市| 缙云县| 沂南县| 沧源| 苏尼特左旗| 扶风县| 红安县| 息烽县| 永州市| 灌阳县| 万全县| 罗江县| 始兴县| 花莲市| 林甸县| 麻城市| 黄龙县| 金坛市| 尚志市| 天全县| 庆城县| 滦南县| 麻江县| 壶关县| 铅山县|