初识JAVA---泛型(尖括号里的可以理解成返回时的类型)(8)

泛型(Generic)

使用泛型可以针对不同的类有相同的处理办法

Vector<String>v=new Vector<String>();

这个尖括号就相当于泛型  如果是String  就尖括号一个String   如果是 Char  或者是自己的类  就再尖括号里加一个相应的名字

v.addElement("one");

String s=v.elementAt(0);

使用泛型的好处

       类型更安全

       使用更广泛,针对不同的类有相同的处理办法,但这些类之间不一定有继承关系

 

下面有两个例子  自定义泛型类  自定义泛型方法

import java.util.*;

class GenerivTreeClass{
    public static void main(String[] args) {
        TNode<String> t=new TNode<>("Roo");
        t.add("Left");t.add("Middle");t.add("Right");
        t.getChild(0).add("aaa");
        t.getChild(0).add("bbb");
        t.traverse();
    }
}

class TNode<T>//定义了T这样一个类型
{
    private T value;
    private ArrayList<TNode<T>> children=new ArrayList<>();
    
    TNode(T v){this.value=v;}
    public T getValue() {return this.value;}
    public void add(T v) {
        TNode<T> child=new TNode<>(v);
        this.children.add(child);
    }
    public TNode<T> getChild(int i){
        if((i<0)||(i>this.children.size())) return null;
        return (TNode<T>)this.children.get(i);
    }
    public void traverse() {
        System.out.println(this.value);
        for(TNode child:this.children)
            child.traverse();
    }
    
}

 

 

import java.util.*;

class GenericMethod{
    public static void main(String[] args) {
        Date date=BeanUtil.<Date>getInstance("java.util.Date");
        System.out.println(date);
    }
}

class BeanUtil{
    public static <T> T getInstance(String clzName){//尖括号里是反馈时候的类型
        try {
            Class c=Class.forName(clzName);
            return(T)c.newInstance();
        }
        catch(ClassNotFoundException ex) {}
        catch(InstantiationException ex) {}
        catch(IllegalAccessException ex) {}
        return null;
    }
}
    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值