我想知道如何在方法有参数本身的情况下为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