Java Yöntemi Parametre olarak Geçirmek
Bir referans ile bir parametre olarak geçirmek için sabırsızlanıyorum. Java parametreleri gibi yöntemler, ancak vermeyen, alternatif almak istiyorum anlıyorum.
Arabirimler parametre olarak geçirme yöntemleri için alternatif söylendi ama bir arabirim referans bir yöntem olarak nasıl hareket edebileceğini anlamıyorum. Eğer doğru anladıysam bir arabirim sadece tanımlanan yöntemlerin soyut bir set. Birkaç farklı yöntem de aynı parametreleri ile aynı yöntem diyebiliriz çünkü her zaman tanımlanması gereken bir arayüz göndermek istemiyorum.
Yapmak istediğim buna benzer bir şey
public void setAllComponents(Component[] myComponentArray, Method myMethod) {
for (Component leaf : myComponentArray) {
if (leaf instanceof Container) { //recursive call if Container
Container node = (Container) leaf;
setAllComponents(node.getComponents(), myMethod);
} //end if node
myMethod(leaf);
} //end looping through components
}
gibi çağırdı:
setAllComponents(this.getComponents(), changeColor());
setAllComponents(this.getComponents(), changeSize());
Şimdiden teşekkürler, Mac
CEVAP
EditJava 8, lambda expressions other answers belirttiği gibi güzel bir çözüm. Cevap aşağıda Java 7 için yazılmış ve daha önce...
command pattern bir göz atın.
// NOTE: code not tested, but I believe this is valid java...
public class CommandExample
{
public interface Command
{
public void execute(Object data);
}
public class PrintCommand implements Command
{
public void execute(Object data)
{
System.out.println(data.toString());
}
}
public static void callCommand(Command command, Object data)
{
command.execute(data);
}
public static void main(String... args)
{
callCommand(new PrintCommand(), "hello world");
}
}
Düzenleme:Pete Kirkham points out, Bu Visitor kullanmadan yapmanın başka bir yolu daha var. Ziyaretçi yaklaşımdır biraz daha fazla yer - bezleri çıkarmak lazım ziyaretçi-aware ile bir acceptVisitor()
yöntem - ama gerekirse traverse daha karmaşık bir nesne grafiği o zaman değer inceleniyor.
Nasıl bir dize olarak yöntem adı veril...
Parametre olarak geçirmek Yöntem kulla...
Java - kolayca POST yöntemi ile HTTP p...
Bu tip 'genel tür parametre olara...
özelliği bir işlevi string parametre o...