泛型小应用

公司里的dao给了一个抽象的实现BaseDao里面有update,insert,delete等方法,但是接受的参数都是Object。这样在调用的时候就可能把不合适的po传递进去,当然也不是什么大麻烦,运行一下就发现了。

这个小问题可以用泛形来解决。不多说,上代码

package com.tianji.jstl.dao;

public interface BaseDao<E> {
	public void insert(E entity);
}

package com.tianji.jstl.dao;

import java.util.List;

import com.tianji.jstl.dao.persistant.Border;

public interface BorderDao extends BaseDao<Border> {
	public List<Border> getBorders(int id);
}


package com.tianji.jstl.dao.impl;

import com.tianji.jstl.dao.BaseDao;

public class BaseDaoImpl<T> implements BaseDao<T> {

	@Override
	public void insert(T entity) {
		System.out.println("insert " + entity.toString());
	}

}

package com.tianji.jstl.dao.impl;



import java.util.List;



import com.tianji.jstl.dao.BorderDao;

import com.tianji.jstl.dao.persistant.Border;



public class BorderDaoImpl extends BaseDaoImpl<Border> implements BorderDao {



	@Override

	public List<Border> getBorders(int id) {

		System.out.println("getBorders " + id);

		return null;

	}



}



package com.tianji.jstl.dao.impl.demo;

import com.tianji.jstl.dao.BorderDao;
import com.tianji.jstl.dao.impl.BorderDaoImpl;
import com.tianji.jstl.dao.persistant.Border;

public class Sample1 {
	public static void main(String args[]){
		BorderDao borderDao = new BorderDaoImpl();
		//这里insert是只接受Border类型的
		borderDao.insert(new Border());
		borderDao.getBorders(100);
	}

}

你可能感兴趣的:(java,DAO)