On Thu, May 29, 2014 at 1:25 AM, Erik Jan de Wit <ede...@redhat.com> wrote: > > On 28 May,2014, at 22:07 , Shazron <shaz...@gmail.com> wrote: > >> https://github.com/apache/cordova-ios/blob/50ca482c8e861c1aa480dadba726b1abbacbc0e1/CordovaLib/Classes/CDVCommandQueue.m#L193-L198 > > Right thanks, that is how I expected it to work, so why not use the same > logic in Android as on iOS? In Java one can also find a method based on the > action name and invoke it. I would say it’s less error prone then doing > string comparison yourself. >
What is the benefit of using this logic? I personally don't see any benefit, since this makes our code more complex. >> >> >> On Wed, May 28, 2014 at 12:05 PM, Erik Jan de Wit <ede...@redhat.com> wrote: >> >>> >>>> >>>> I don't know, it very much could be. It could be that this makes sense >>> in >>>> Obj-C but not in Java based on how they handle NoSuchMethod. I'd prefer >>> to >>>> not have to rely on an exception being caught, especially since it could >>>> suppress other exceptions being thrown that I want to know about. >>> >>> Sending a message (calling a method) in object-c for a method that doesn’t >>> exist will also throw an exception, I haven’t looked at the implementation >>> but I would suspect that there is a test to see if the method (selector) is >>> there. >>> >>>> >>>> Also, I'm assuming the exception is NoSuchMethod, which isn't a safe >>>> assumption given that each device has their own quirks and this isn't >>>> guaranteed. >>> >>> One could just lookup if the method exist and not just try to invoke it >>> and wait for the NoSuchMethod. That way one could make the error handling >>> nicer, for example: >>> >>> You have a method called ‘myAction’ but it does not have the proper method >>> signature! Found public void myAction() but should be pubic PluginResult >>> myAction(JSONArray, CallbackContext) >>> >>> >