我需要一些關於Java方法的建議,因爲委託與.NET不同。我希望創建一些具有相同名稱和相同方法名稱的接口,但只有不同的參數是參數的數量。類似於.NET中的ActionsJava中的代表像.NET一樣
某些代碼示例。
現在有效的抽象類是這樣實現的。
public abstract class AbstractValidators {
public <T1> boolean isValid(T1 t1) {
return false;
}
public <T1,T2> boolean isValid(T1 t1, T2 t2) {
return false;
}
//And so one
}
然後在某些課上我們可以做這樣的事情。
public class SomeClass {
AbstractValidators validateStrVsInter = new AbstractValidators() {
public <String,Integer> boolean isValid(String t1, Integer t2) { //Don't be fool by colors the String and Integer are only names of generic parameters
return true;
}
};
public void doStaff() {
this.validateStrVsInter.<String,Integer>isValid("String", 100); // return true;
}
}
的工作,但不是很好的解決方案恕我直言,我需要的是類似的東西可能會被分配到一個不同的interafaces ..
public interface IValidator<T1> {
public boolean isValid(T1 t);
}
public interface IValidator<T1,T2> {
public boolean isValid(T1 t, T2 t2);
}
一些想法?
編輯:
什麼目標?
很簡單,有可能改變定義
isValid(String t1, Integer t2) { }
到
isValid(String t1, Integer t2, Double t3) { }
,並調用
validator.isValid("1",2);
到
validator.isValid("1",2, 3.0);
不改變類導入等
是的。但後來我被迫實施每一種方法,而不是特定的方法。我想選擇一個執行器並對其執行操作。 – 2010-10-27 14:45:11
然後按照Swing的步驟進行操作,併爲每種方法制作一個適用於空實現的適配器。然後你只需重寫你需要的那個。 – 2010-10-27 15:17:04