A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

package cn.generic;
/**
* 自定义泛型类
* 注意:一旦使用泛型,不能使用具体对象的方法,因为Object是所有类的基类,所以只能使用Object的方法。
* @author Administrator
*
*/
public class GenericDemo_2 {


        public static void main(String[] args) {
                //创建泛型类对象,在这里对象的泛型明确的类型为String,如果对象的方法没有自定义泛型的话,就必须符合对象的泛型类型。
                CustumGeneric<String> cg = new CustumGeneric<String>();
               
                //此方法有自己的泛型
                cg.show("你好");               
                cg.show(new Integer(8));               
               
                //此方法跟随创建对象的泛型
                cg.print("世界");
               
                //静态方法自定义自己的泛型,静态不能操作对象,用类名直接调用静态方法
                CustumGeneric.method("百家争鸣");
                CustumGeneric.method(new Integer(8));
               
        }


}


/**
* 自定义泛型类
* @author Administrator
*/
class CustumGeneric<T>{
        private T t;


        public T getT() {
                return t;
        }


        public void setT(T t) {
                this.t = t;
        }
        /**
         * 将泛型定义在方法上,定义泛型,使用泛型。
         * @param t
         */
        public<w> void show(w object){
                System.out.println("有自己的泛型:"+object);
        }
        /**
         * 没有自定义泛型,所以能操作的类型只能符合对象的泛型类型
         * @param t
         */
        public void print(T object){
                System.out.println("无自己的泛型:"+object);
        }
        /**
         * 当方法为静态时,不能访问类上定义的泛型,
         * 如果静态方法使用泛型,只能定义在静态方法上
         */
        public static<S>void method(S object){
                System.out.println("静态方法使用泛型"+object);
        }
}


觉得总结的好,就麻烦客官给个赞呗

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

5 个回复

倒序浏览
必须赞个,挺好的
回复 使用道具 举报
好的谢谢楼主分享
回复 使用道具 举报

谢谢版主的捧场
回复 使用道具 举报
学习了,总结的很详细
回复 使用道具 举报
很好的总结 谢谢楼主无私的分享  学习到了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马