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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈劲松 中级黑马   /  2015-9-2 16:52  /  458 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.泛型类
什么时候定义泛型类?
当类中要操作的引用数据类型不确定的时候,早期定义Object来完成扩展,而现在用泛型类。

定义泛型类之前:
class Worker
{}
class Tool
{
        private object obj;
        public void set(Object obj)
        {
                this.obj = obj;
        }
        public Object get()
        {
                return obj;
        }
}

class Demo
{
        public static void main(String[] args)
        {
                Tool t = new Tool();
                t.set(new Worker());
                Worker w = (Worker)t.get();
        }
}
定义泛型类之后:
class Worker
{}
class Tool<tool>
{
        private tool t;
        public void set(tool t)
        {
                this.t = t;
        }
        public tool get()
        {
                return t;
        }
}
class Demo
{
        public static vod main(String[] args)
        {
                Tool<Worker> t = new Tool<Worker>();
                t.set(new Worker());
                Worker w = t.get();
        }
}

2.泛型方法
泛型类定义的泛型,在整个类中有效,如果被方法使用,那么泛型类的对象就会明确要操作
的数据的类型,类型就固定了。为了让不同方法可以操作不同的不确定的数据类型,可以使
用泛型方法。
如:
class Tool
{
        public <T> void show(T t)
        {
                System.out.println(t);
        }
        public <Q> void show2(Q q)
        {
                System.out.println(q);
        }
}
class Demo
{
        public static void main(String[] args)
        {
                Tool tool = new Tool();
                //这里可以放入不同类型的形参。
                tool.show("hhhh");
                tool.show(4);
                //可以放入不同类型的形参。
                tool.show2("eeee");
                tool.show2(5);
        }
}

注意:对于静态方法,静态方法的访问类型不能是定义在类上的泛型。如果静态方法需要泛
型,可以单独在静态方法上定义新的泛型。

1 个回复

倒序浏览
看的都晕了学习中
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马