国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - 多個(gè)java泛型示例分享

多個(gè)java泛型示例分享

2019-11-18 14:47Java技術(shù)網(wǎng) JAVA教程

這篇文章主要介紹了多個(gè)java泛型示例,需要的朋友可以參考下

1.泛型

1.1普通泛型

 

復(fù)制代碼代碼如下:

package test.lujianing;
/**
 * 泛型類
 * @param <T>
 */
class Test<T>{
    private T obj;
    public void setValue(T obj){
        this.obj =obj;
    }
    public T getValue(){
        System.out.println(obj.getClass().getName());
        return obj;
    }
}
/**
 * 測(cè)試泛型類
 */
public class TestOne {
    public static void main(String[] args) {
        //測(cè)試Integer泛型
        Test<Integer> t1 = new Test<Integer>();
        t1.setValue(5);
        Integer i = t1.getValue();
        System.out.println(i);
        //測(cè)試Double泛型
        Test<Double> t2 = new Test<Double>();
        t2.setValue(5.55D);
        Double d = t2.getValue();
        System.out.println(d);
        //測(cè)試String泛型
        Test<String> t3 = new Test<String>();
        t3.setValue("hello world");
        String str =t3.getValue();
        System.out.println(str);
    }
}

 

輸出結(jié)果:

 

復(fù)制代碼代碼如下:

java.lang.Integer
5
java.lang.Double
5.55
java.lang.String
hello world

 

1.2 K/V泛型

 

復(fù)制代碼代碼如下:


package test.lujianing;
import java.util.HashMap;
import java.util.Map;

 

/**
 * Created by Administrator on 14-3-30.
 */
class TestKV<K,V>{
    private Map<K,V> map=new HashMap<K, V>();
    public void put(K k, V v) {
        map.put(k,v);
    }
    public V get(K k) {
        return map.get(k);
    }
}
public class TestFour{
    public static void main(String[] args) {
        TestKV<String,String> t = new TestKV<String, String>();
        t.put("name","jianing");
        System.out.println(t.get("name"));

        TestKV<String,Integer> t2 = new TestKV<String, Integer>();
        t2.put("age",24);
        System.out.println(t2.get("age"));
    }
}

 

輸出結(jié)果:

 

復(fù)制代碼代碼如下:

jianing
24

 

2.泛型接口

 

復(fù)制代碼代碼如下:

package test.lujianing;
/**
 * 泛型接口
 * @param <T>
 */
public interface TestImpl<T> {
    public void setValue(T t);
    public T getValue();
}

 

輸出結(jié)果:

 

復(fù)制代碼代碼如下:

1
hello word

 

3.泛型方法

 

復(fù)制代碼代碼如下:


package test.lujianing;

 

/**
 * 泛型方法類
 */
class TestMethod{
    /**
     * 泛型方法
     */
    public <T>T getValue(Object s,Class<T> clazz) {
        System.out.println(clazz.getName());
        T t =null;
        if(clazz.getName().equals("java.lang.Integer")){
            Double d = Double.parseDouble(s.toString());
            int i =d.intValue();
            t=(T)new Integer(i);
        }
        if(clazz.getName().equals("java.lang.Double")){
            t=(T)new Double(s.toString());
        }
        return t;
    }
}

/**
 * 泛型方法測(cè)試類
 */
public class TestThree {
    public static void main(String[] args) {
        TestMethod t = new TestMethod();
        int i =t.getValue("30.0011",Integer.class);
        System.out.println(i);
        double d  =t.getValue("40.0022",Double.class);
        System.out.println(d);
    }
}

 

輸出結(jié)果:

 

復(fù)制代碼代碼如下:

java.lang.Integer
30
java.lang.Double
40.0022

 

4.限制泛型

在上面的例子中,沒(méi)有限制class Test<T>類型持有者T的范圍,默認(rèn)限定類型相當(dāng)于Object。比如我們要限制T為數(shù)字接口類型。只需要這么做:class Test<T extends Number>,這樣類中的泛型T只能是Number接口的實(shí)現(xiàn)類,傳入非Number接口編譯會(huì)出錯(cuò)。

5.通配泛型

 

復(fù)制代碼代碼如下:


package test.lujianing;
import java.util.HashMap;
import java.util.Map;
/**
 * 通配泛型
 */
public class TestFive {
    public static void main(String[] args) {
        Map<String,Class<? extends Number>> map = new HashMap<String,Class<? extends Number>>();
        map.put("Integer",Integer.class);
        map.put("Double",Double.class);

 

        for (Map.Entry<String,Class<? extends Number>> entry : map.entrySet()) {
            System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
        }
    }
}

 

輸出結(jié)果:

 

復(fù)制代碼代碼如下:

key:Double value:class java.lang.Double
key:Integer value:class java.lang.Integer

 

簡(jiǎn)單的例子:針對(duì)1.1的例子

 

復(fù)制代碼代碼如下:

public static void main(String[] args) {
        //測(cè)試Integer泛型
        Test<Integer> t1 = new Test<Integer>();
        t1.setValue(5);
        fun(t1);
        //測(cè)試Double泛型
        Test<Double> t2 = new Test<Double>();
        t2.setValue(5.55D);
        fun(t2);
    }
    public static void fun(Test<?> t){
        System.out.println("通配泛型"+t.getValue());
    }

 

輸出結(jié)果:

 

復(fù)制代碼代碼如下:

java.lang.Integer
通配泛型5
java.lang.Double
通配泛型5.55

 

6.補(bǔ)充

在泛型中,可能會(huì)遇到<T><E>等,T和E分別是Type和Element的首字母。E一般用來(lái)表示集合類型中的元素的類型,例如List接口的定義,public interface List<E> extends Collection<E>。這只是一種命名習(xí)慣,兩者沒(méi)有本質(zhì)區(qū)別。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲成人av| 天天干夜操 | 日韩在线视频观看 | 日日夜夜狠狠干 | 色在线免费 | 成人超碰 | 91视频入口 | 69久久 | 91精品国产高清久久久久久久久 | 国产一区二区精品在线 | 日本视频免费观看 | 日本精品久久久 | 福利视频在线 | 欧美一级二级三级 | 久久国产精品久久久久久电车 | 久久av一区二区三区 | 国产精品三级久久久久久电影 | 免费一级片在线观看 | 成人久久久久久久久 | 欧美一区二区三区在线观看视频 | 久久伊人成人网 | 天堂中文视频在线观看 | 精品国产乱码久久久久久牛牛 | 涩涩视频在线免费看 | 国产精品一卡二卡三卡 | 亚洲国产成人91精品 | av网站免费 | 免费在线看a | 95香蕉视频| 精品欧美一区二区三区久久久 | 欧美影院 | 玖玖综合网 | 久久久国产精品免费观看 | 久久久久av | 国产精品一区二区久久久 | 欧美一级二级三级视频 | 色av综合 | 国产成人av在线播放 | 日本高清视频在线播放 | 日韩成人在线播放 | 亚洲一级一片 |