Generics allow you to use an identifier to represent the type of a property in the class or the return value and parameter type of a method when defining a class or interface. This type parameter will be determined when using it (for example, inheriting or implementing this interface, declaring a variable with this type, creating an object) (that is, passing in the actual type parameter, also called a type argument).
Generics are a parameterized type.
Generics appeared in JDK5.0 and cannot be used in previous versions;
Generics need to be written in a pair of <>;
The type of the generic must be a reference type, not a basic data type;
If it is a basic data type, its wrapper class must be used. If there are multiple generic types, use commas to separate them;
Example:
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()); } }
The above is the detailed content of How to apply java generics. For more information, please follow other related articles on the PHP Chinese website!