对Java泛型的理解
1 标识接口
虽然叫标识接口但是这个java类不仅仅局限于interface,class也是OK的,选择接口还是类关键看自己的选择;下面是我定义的一个标识接口
package org.lxh;
public interface BaseInfo {
}
一般来说这个接口可能定义了一些方法,不定义也是可以的
2 把接口和泛型混合使用制定一个比较通用的接口
package org.lxh;
public interface IGenericManager
public void save(E info);
public void del(E info);
public void update(E info);
public void findAll(E info);
public void findById(int id);
}
泛型的奇特之处就在这里,IGenericManager的尖括号里是什么那里面对于方法的参数就是什么,前提是这个对象满足BaseInfo这个标准(可以理解为BaseInfo的子类或是子接口)
3 通用接口如何与其他java代码进行结合
package org.lxh;
public interface UserManager extends IGenericManager
}
运用对象的继承特性可以使接口或类的功能近一步加强,代码的复用性也更好
4 普通接口的实现类
package org.lxh;
public class UserManagerImpl implements UserManager{
public void save(UserInfo info) {
// TODO Auto-generated method stub
}
public void del(UserInfo info) {
// TODO Auto-generated method stub
}
public void update(UserInfo info) {
// TODO Auto-generated method stub
}
public void findAll(UserInfo info) {
// TODO Auto-generated method stub
}
public void findById(int id) {
// TODO Auto-generated method stub
}
}
这样我们就不在每个普通的接口里面定义一大堆重复的方法,节约了时间成本
5 关于pojo类
既然泛型是为参数的多样化服务,那么pojo类自然应实现标识接口或标识类
package org.lxh;
public class UserInfo implements BaseInfo{
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;
}
}
编写高质量代码 改善Java程序的151个建议 PDF高清完整版 http://www.linuxidc.com/Linux/2014-06/103388.htm
Java 8简明教程 http://www.linuxidc.com/Linux/2014-03/98754.htm
Java对象初始化顺序的简单验证 http://www.linuxidc.com/Linux/2014-02/96220.htm
Java对象值传递和对象传递的总结 http://www.linuxidc.com/Linux/2012-12/76692.htm
Java对象序列化ObjectOutputStream和ObjectInputStream示例 http://www.linuxidc.com/Linux/2012-08/68360.