我想知道如何在方法有參數本身的情況下爲Method參數調用者創建一個契約。所以,我用...作爲帶簽名合同的參數的方法?
ClassA {
String string_ = "HI";
public static void subscribe(Object class, Method action) {
action.invoke(class, string_);
}
}
ClassB {
ClassB() {
ClassA.subscribe(this, this.getClass().getMethod("load", String.class));
}
public void load(String input) {
if(input.equals("HI")) {
...
}
}
}
我想知道如何確保爲「行動」,通過該方法將字符串作爲參數(即確保法動作==負載(串){})?有沒有這樣的事情可供選擇:
public static void subscribe(Object class, Method action(String.class)) {
我想這樣做的認購如此的方法簽名,這是有目共睹的調用類(ClassB的),它需要準備採取指定類型的參數。
編輯:更新最後的代碼位,所以不顯示,如果方法是通用的。對我而言,選擇使用<>來代表我試圖傳達的一個例子。
+1。哦!接口中的方法是隱式公開的。 – 2011-05-01 19:47:45
@Laurent:沒錯,但我是一個智者曾寫過「顯式比隱式更好」,我的感覺是,在接口中聲明方法是真實的時代之一。 – 2011-05-01 19:54:21
我接受這個答案,因爲它正確地回答說,沒有辦法在Java中做到這一點,爲什麼,並給出了一個可能的解決方案。每個人似乎都以這樣或那樣的方式使用命令模式,所以我把它們都作爲一個部分解決方案。 – 2011-05-01 20:55:13