0
我有以下結構:如何在使用java調用函數的過程中添加抽象類?
public abstract class BaseCall<T> implements Callable<T> {
public abstract T innerCall();
protected Structure getProxy() {
return SomeStructure;
}
}
和至少4個看起來像類:
public class GetXCall extends BaseCall<Set<String>> {
private final Credentials credentials;
public GetXCall (Credentials credentials) {
this.credentials = credentials;
}
@Override
public Set<String> innerCall() {
return getProxy().getXfromVC(credentials);
}
}
public class GetYCall extends BaseCall<Set<String>> {
private final Credentials credentials;
public GetYCall (Credentials credentials) {
this.credentials = credentials;
}
@Override
public Set<String> innerCall() {
return getProxy().getYfromVC(credentials);
}
}
我想弄清楚如何讓它更漂亮,並添加另一個抽象類中中間這樣我就可以傳遞給函數getYfromVC
或getXfromVC
和抽象類將調用類似:
getProxy()._____(credentials)
這是我嘗試,但它似乎沒有工作,我不能用run
內
public abstract class RunVcTask<T> extends BaseCall<T> {
private final Credentials credentials;
public RunVcTask(Credentials credentials) {
this.credentials = credentials;
}
public abstract T run();
@Override
public T innerCall() {
return getProxy().run(credentials); //HERE the run can't work
}
}
由於InnerCall
並不總是使用的憑據,我不能將其更改爲abstract innerCall(Credentials c)
有人能建議是否有一個很好的方法來做到這一點? (我目前使用的Java 7)
你會ju ST必須調用它getfromVC() –
什麼?你能解釋一下嗎? getProxy()不能調用'run' – user1386966
你的類已經很簡單了,不清楚爲什麼你需要更簡化它 –