Object의 equal 메소드 내에서 String [] 비교에 대한 설명이 필요합니다. 다음은 내 코드 스냅 샷입니다. 이 코드를 실행하면 true 및 false 대신 true 및 false를 제공합니다. 내 경우에는 작업 클래스가 각 호출마다 고유 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