定义泛型方法

10 篇文章 0 订阅
2 篇文章 0 订阅
package yuwei.com;

import java.util.ArrayList;
import java.util.Collection;


class objectToAny{
    //泛型构造
    public <T>objectToAny(T a){
        System.out.println(a);
    }
    //定义泛型方法
    public <T>void test(T[] oj,Collection<T> c){
        for(T o:oj) {
            c.add(o);
        }
        System.out.println("------------------");
        System.out.println(c);
    }
    public objectToAny() {
        super();
        // TODO Auto-generated constructor stub
    }
    public <T>void test1(Collection<T> to,Collection<? extends T> from) {
        for(T recieve:from) {//向to集合里添加T的任意子类(Number,Integer)
            to.add(recieve);
        }
        System.out.println("------------------");
        System.out.println(to);
    }
    public <T> T test2(Collection<T> from,Collection<? super T> to) {//(Integer,Number)
        T last = null;
        for(T recieve:from) {//向to集合里添加T的任意子类
            last = recieve;
            to.add(recieve);
        }
        System.out.println("------------------");
        System.out.println(to);
        return last;
    }
}
public class TestDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub


        objectToAny t = new objectToAny("NAME");
        Object[] o = new Object[10];
        Collection<Object> c= new ArrayList<>();
        t.test(o, c);

        String[] s = new String[10];
        Collection<String> cs= new ArrayList<>();
        t.test(s, cs);

        Collection<Object> from = new ArrayList<>();
        Collection<Object> to = new ArrayList<>();
        from.add(new String("aaa"));
        from.add("5");
        from.add(20);
        t.test1(to, from);

        Collection<Integer> from1 = new ArrayList<>();
        from1.add(1);
        from1.add(2);
        from1.add(3);
        from1.add(4);
        Collection<Number> to1 = new ArrayList<>();
        t.test1(to1, from1);
        //当需要返回一个值时需要用到下面方法
        //由于返回的类型为Integer类型,而T是Number类型,导致出错如果继续使用test1()函数
        Integer a = t.test2(from1, to1);
        System.out.println(a);

    }

}

以上来自java疯狂讲义自学笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值