码迷,mamicode.com
首页 > 其他好文 > 详细

36_入门泛型的基本应用

时间:2015-01-31 10:37:47      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

 

package com.itcast.day2;

import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;

/**
 * 泛型入门
 * 
 * @author ljl
 * 
 */
public class GernericTest {

    public static void main(String[] args) throws Exception {

        /**
         * 不使用泛型时,eclipse中的黄色警告 Multiple markers at this line - ArrayList is a
         * raw type. References to generic type ArrayList<E> should be
         * parameterized 翻译:ArrayList是一个原始类型,参照泛型类型,ArrayList<E>应该被参数化。
         */
        ArrayList list = new ArrayList();
        list.add(1);
        list.add(1L);
        list.add("abc");
        // 运行期异常--类型转换: java.lang.ClassCastException: java.lang.String cannot be
        // cast to java.lang.Integer
        int i = (Integer) list.get(2);

        /** 使用了泛型 ***/
        List<String> list2 = new ArrayList<String>();
        list2.add("abc");
        // list2.add(1);//编译报错。
        // list2.add(1L);//编译报错。

        // java.lang.ClassCastException: java.lang.String cannot be cast to
        // java.lang.Integer
        // int i=(Integer)list2.get(0);//编译报错。
        String str = list2.get(0);
        System.out.println(str);// abc

        /** 反射中泛型的使用 ***/
        // 01.Constructor未使用泛型,构造对象完毕之后不知道是String
        
        /**不使用泛型时,eclipse中的黄色警告
         * Constructor is a raw type. References to generic type Constructor<T> should be parameterized
         * 翻译:Constructor是一个原始类型,应该参照泛型类Contructor<T>来参数化.
         */
        Constructor constructor = String.class
                .getConstructor(StringBuffer.class);
        String ss = (String) constructor.newInstance(new StringBuffer("abc"));

        // 02.Constructor使用了泛型,规定好构造器的类型是Stirng类型的
        Constructor<String> constructor2 = String.class
                .getConstructor(StringBuffer.class);
        String ss2 = constructor2.newInstance(new StringBuffer("abcd"));

    }

}

36_入门泛型的基本应用

标签:

原文地址:http://www.cnblogs.com/qq-757617012/p/4263631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!