我需要在Object的平等方法中對String []進行比較。 下面是我的代碼快照。當我執行這個代碼時,它會給出真實和錯誤,而不是真實和真實。 同樣在我的情況下,Task類爲每個調用生成唯一的ID。 我在做什麼錯?任何建議,將不勝感激。如何用字符串數組覆蓋equals()方法?
public class JobTask extends Task {
String[] args;
public WFTask(String[] args) {
this.args = args;
}
@Override
public boolean equals(Object obj) {
if (! (obj instanceof String[])){
return false;
}
String[] arguments = (String[]) obj;
boolean ret = Arrays.equals(this.args , arguments);
return ret;
}
@Override
public void execute(TaskExecutionContext context) throws RuntimeException {
--------------
--------------
}
public static void main(String[] args) {
String[] arg1 = {"a","b","c"};
String[] arg2 = {"a","b","c"};
System.out.println(Arrays.equals(arg1,arg2));
JobTask t1 = new JobTask(arg1);
JobTask t2 = new JobTask(arg2);
System.out.println(t1.equals(t2));
}
}
public abstract class Task {
private Object id = GUIDGenerator.generate();
public Task() {
}
Object getId() {
return id;
}
public abstract void execute(TaskExecutionContext context) throws RuntimeException;
}
我誤會了。它使我工作。非常感謝。 – user648330