5个回答
推荐于2018-02-05
展开全部
java中类是一个引用型的变量,对比的话只能是对比地址,一个对象可以改变,但它的内存地址不会改变,况且修改类与地址没有关系吧,所以用地址是没法判断的,只能通过对比类中的成员变量来解决。像String类中这样把继承自object的public boolean equals(Object obj) {
return (this == obj);
}
重写为 public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}如果只是判断硬盘上的源码文件的话,可以把整个源码组合成一个字符串,然后读取对比,个人见解。
return (this == obj);
}
重写为 public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}如果只是判断硬盘上的源码文件的话,可以把整个源码组合成一个字符串,然后读取对比,个人见解。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询