JAVA编程

Java范型的两种写法

日期:2015/6/28来源: IT猫扑网

  1、原始的DAO层的类:

package com.test;

public class UserDao {
   
    public void add(User user){
        //.保存实体的代码
    }
   
    public User get(int id) {
        //.查询实体的代码
        return null;
    }

}

  其中,User类代码比较简单,如下:

package com.test;

public class User {
   
    private int id;
    private String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
   
}

  2、我们将Dao层的类写成范型的形式,有两种写法:

  其一、

package com.test;

public class EntityDao1 {
   
    public <T> void add(T t){
        //查询实体的代码
    }
   
    public <T,ID> T get(ID id){
        //.保存实体的代码
        return null;
    }

}

   范型一般用于方法的参数或者方法的返回值,上面的写法,我们要使范型有效,就须在方法的返回类型前加入强制范型转换。其中,add(T t)的参数用了范型,它的返回值是void型,就在void 前用强制类型转换,即加上<T>,强制转换成范型的形式,这样就不会报错了。而T get(ID id),由于它的参数和返回类型都用了范型,故要在返回类型T前强制转换,即<T,ID>。

  其二,范型也可写成以下形式:

package com.test;

public class EntityDao2<T,ID> {
   
    public void add(T t){
        //..保存实体的代码
    }
   
    public T get(ID id){
        //.查询实体的代码
        return null;
    }

}

  这种形式,是把范型声明放在类中了,就不需每个方法都写强制类型转换。

  看实际需要,哪种方法方便就用哪种吧!范型给java编程带来了许多方便,好好利用,会达到事半功倍的效果。

相关文章

相关下载

网友评论

我要评论...
    没有更早的评论了
    取消