interface IEquatable<T> { bool Equals(T obj); } 这里的T和是什么?还有IEquatable代表什么?

如题所述

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");
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-22
T是一个泛型。你可以定义为自己需要的类型,也可以定义为object之类的泛型,这需要根据后面你需要的数据的类型来定的。追问

你能说下你对泛型的理解么?我百度和看官方的都看得一愣一愣的

追答

广泛应用的类型,广泛适用的类型。组词理解就好了啦。。。

追问

谢谢

相似回答