T是泛型,在调用或者声明的时候指定类型,T可以是String,Object等常用类型,更常见是实体的类型,比如自定义的用户类User,管理员类Admin等。
IEquatable首先它是个接口,其中定义了一个Equals的方法,方法的参数也是一个泛型类型,主要用于比较两个类型是否相同。
举例:
接口
public interface IEquatable<T> {
boolean Equals(T obj);
}
User类
public class User implements IEquatable<User> {
private String name;
private Integer age;
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public boolean Equals(User oUser) throws NullPointerException {
if (oUser != null) {
if (this.age - oUser.getAge() == 0
&& this.name.equals(oUser.getName()))
return true;
}
return false;
}
}
测试
public static void main(String[] args) {
User u1=new User("aige", 22);
User u2=new User("sleest",22);
User u3=new User("aige",22);
System.out.println(u1.Equals(u2)?"Yes":"No");
System.out.println(u1.Equals(u3)?"Yes":"No");
}