method-dispatch

Work around Java's static method dispatching without Double Dispatch/Visitor patterns

I am using a class Foo that provides these methods: String overloadedMethod(Object) String overloadedMethod(Goo) Since Java statically dispatches on the non-receiver argument, I cannot just pass my value (which is an Object, but might have dynamic type Goo) and rely on the JVM to dynamically choose the "correct" method. This is my cu...

Java method dispatch with null argument

Why does it (apparently) make a difference whether I pass null as an argument directly, or pass an Object that I assigned the value null? Object testVal = null; test.foo(testVal); // dispatched to foo(Object) // test.foo(null); // compilation problem -> "The method foo(String) is ambiguous" public void foo(String arg) { // More-...

Java dynamic binding

I am practicing for an exam, and found a sample problem that gets me totally lost. For the following code, find what the output is: class Moe { public void print(Moe p) { System.out.println("Moe 1\n"); } } class Larry extends Moe { public void print(Moe p) { System.out.println("Larry 1\n"); } public v...

Ruby: How do I invoke a function via an object reference?

Consider this contrived example: # Dispatch on value of fruit_kind: TYPE_A = :apple TYPE_B = :banana TYPE_C = :cherry eating_method = nil case fruit_kind # Methods to use for different kinds of fruit (assume these are # already defined) when TYPE_A then eating_method = bite when TYPE_B then eating_method = peel when TYPE_C...

Itemclick event in datagrid.

Hi, The problem can be summarized as when clicking an item in datagrid, the text area shows the value of the item, but here the compoents are separate and hence events need to be dispatched. My mxml component file : <?xml version="1.0" encoding="utf-8"?> <mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml" itemClick="itemClickEvent(...

Using -performSelector: vs. just calling the method

I'm still kind of new to Objective-C and I'm wondering what is the difference between the following two statements? [object performSelector:@selector(doSomething)]; [object doSomething]; ...