泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例 如,继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即 传入实际的类型参数,也称为类型实参)。
泛型是一种参数化类型。
泛型是JDK5.0出现,在之前的版本中是不能使用的;
泛型是需要写在一对<>中的;
泛型的类型必须是引用类型,不能是基本数据类型;
如果是基本数据 类型,必须使用其包装类。如果有多个泛型类型,使用逗号分隔;
示例:
public class DAO<T> { private Map<String ,T> map = new HashMap<>(); public void save(String id,T entity){ map.put(id,entity); } public T get(String id){ return map.get(id); } public void update(String id,T entity){ map.put(id,entity); } public List<T> list(){ Collection<T> values = map.values(); List list = new ArrayList(); for (T value : values) { list.add(values); } return list; } public void delete(String id){ map.remove(id); } }
public class DAOTest { public static void main(String[] args) { DAO<User> userDAO = new DAO<>(); User user1 =new User(1,12,"张三"); User user2 =new User(2,13,"李四"); User user3 =new User(3,14,"王五"); userDAO.save("1",user1); userDAO.save("2",user2); userDAO.save("3",user3); System.out.println(userDAO.get("1")); userDAO.update("1",new User(1,18,"张三")); List<User> list = userDAO.list(); System.out.println(list); userDAO.delete("1"); System.out.println(userDAO.list()); } }
以上是java泛型如何应用的详细内容。更多信息请关注PHP中文网其他相关文章!