日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

泛型java实例_【Java学习笔记】Java6泛型实例

發布時間:2024/9/19 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 泛型java实例_【Java学习笔记】Java6泛型实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

你若是不使用泛型,則會這樣處理數據類型不確定的問題:

class Stash {

private Object x;

void set(Object x) {

this.x = x;

}

Object get() {

return(x);

}

}

public class StashOne {

public static void main(String arg[]) {

Stash stash = new Stash();

stash.set("abcd");

String str = (String)stash.get();

}

}

使用了泛型則:

class StashString {

private String x;

void set(String x) {

this.x = x;

}

String get() {

return(x);

}

}

public class StashTwo {

public static void main(String arg[]) {

StashString stash = new StashString();

stash.set("abcd");

String str = stash.get();

}

}

你也可以在創建對象的時候規定類型:

class Stash {

private T x;

void set(T x) {

this.x = x;

}

T get() {

return(x);

}

}

public class StashThree {

public static void main(String arg[]) {

Stash stash = new Stash();

stash.set("abcd");

String str = stash.get();

}

}

或者在賦值的時候規定:

class Stash {

private T x;

void set(T x) {

this.x = x;

}

T get() {

return(x);

}

}

public class StashFour {

public static void main(String arg[]) {

Stash stash = new Stash();

stash.set("abcd");

String str = (String)stash.get();

}

}

要想規定某個參數是某各類及其子類的泛型,則:

class Stash {

private T x;

void set(T x) {

this.x = x;

}

T get() {

return(x);

}

}

public class StashFive {

public static void main(String arg[]) {

Stash istash = new Stash();

Integer ten = new Integer(10);

istash.set(ten);

ten = istash.get();

Stash dstash = new Stash();

Double pi = new Double(3.14159);

dstash.set(pi);

pi = dstash.get();

}

}

對于接口:

import java.util.EventListener;

import javax.swing.JTable;

import javax.swing.undo.UndoManager;

class Stash {

private T x;

void set(T x) {

this.x = x;

}

T get() {

return(x);

}

}

public class StashSix {

public static void main(String arg[]) {

Stash tablestash = new Stash();

JTable table = new JTable();

tablestash.set(table);

table = tablestash.get();

Stash dstash = new Stash();

UndoManager unman = new UndoManager();

dstash.set(unman);

unman = dstash.get();

}

}

而你要是想既規定類又規定實現了某一個接口,那么:

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.awt.Transparency;

class Stash {

private T x;

void set(T x) {

this.x = x;

}

T get() {

return(x);

}

}

public class StashSeven {

public static void main(String arg[]) {

Stash bufstash = new Stash();

BufferedImage bufimage = new BufferedImage(50,50,0);

bufstash.set(bufimage);

bufimage = bufstash.get();

}

}

而通配符的泛型類可以使你在創建泛型類的指針時可以模糊處理:

class Stash {

private T x;

void set(T x) {

this.x = x;

}

T get() {

return(x);

}

}

public class StashEight {

public static void main(String arg[]) {

Stash extends Number> numberstash;

Stash integerstash;

integerstash = new Stash();

integerstash.set(new Integer(10));

numberstash = integerstash;

Number number = numberstash.get();

System.out.println(number.toString());

Stash doublestash;

doublestash = new Stash();

doublestash.set(new Double(3.14159));

numberstash = doublestash;

Double dnumber = (Double)numberstash.get();

System.out.println(dnumber.toString());

}

}

泛型還可以嵌套:

class Pair {

private T left;

private U right;

Pair(T l, U r) {

left = l;

right = r;

}

public T getLeft() {

return(left);

}

public U getRight() {

return(right);

}

}

class Stash {

private T t;

void set(T t) {

this.t = t;

}

T get() {

return(t);

}

}

public class Nesting {

@SuppressWarnings("unchecked")

public static void main(String arg[]) {

Stash> sp;

sp = new Stash>();

Pair pair = new Pair("Average",new Long(320));

sp.set(pair);

pair = sp.get();

System.out.println(pair.getLeft() + " " + pair.getRight());

}

}

另外泛型不只是類,方法也可以泛型:

import java.awt.Color;

public class GenericMethod {

public static void main(String arg[]) {

GenericMethod gm = new GenericMethod();

gm.objtype("abcd");

gm.gentype("abcd");

gm.objtype(Color.green);

gm.gentype(Color.green);

}

public void objtype(Object t) {

System.out.println(t.getClass().getName());

}

public void gentype(T t) {

System.out.println(t.getClass().getName());

}

}

分享到:

總結

以上是生活随笔為你收集整理的泛型java实例_【Java学习笔记】Java6泛型实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。