at:tutorial:symbiosis
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
at:tutorial:symbiosis [2007/07/04 22:42] – jdedecker | at:tutorial:symbiosis [2007/07/05 09:39] – jdedecker | ||
---|---|---|---|
Line 56: | Line 56: | ||
In Java methods can be overloaded based on the number of arguments and the types of the arguments. | In Java methods can be overloaded based on the number of arguments and the types of the arguments. | ||
If the Java method is overloaded based on arity (i.e. each overloaded method takes a different number of arguments), the number of arguments in the AmbientTalk invocation can be used to identify a unique Java method. Hence, overloading based on arity does not require special attention. If the Java method is overloaded based solely on argument types, the interpreter may derive that the actual arguments can only be converted from AmbientTalk to the appropriate Java types for one of the matching overloaded signatures. Again, if only one match remains, the unique match is invoked. In the remaining case in which the actual AmbientTalk arguments satisfy more than one overloaded method signature, the symbiotic invocation fails. It is then the AmbientTalk programmer' | If the Java method is overloaded based on arity (i.e. each overloaded method takes a different number of arguments), the number of arguments in the AmbientTalk invocation can be used to identify a unique Java method. Hence, overloading based on arity does not require special attention. If the Java method is overloaded based solely on argument types, the interpreter may derive that the actual arguments can only be converted from AmbientTalk to the appropriate Java types for one of the matching overloaded signatures. Again, if only one match remains, the unique match is invoked. In the remaining case in which the actual AmbientTalk arguments satisfy more than one overloaded method signature, the symbiotic invocation fails. It is then the AmbientTalk programmer' | ||
+ | |||
+ | Selection of the correct overloaded method is done using the **cast** method. | ||
< | < | ||
- | aVector.remove.cast(jlobby.java.lang.Integer)(1) | + | >def remove := aVector.remove |
- | aVector.remove.cast(jlobby.java.lang.Object)(3) | + | >>< |
+ | >remove.cast(jlobby.java.lang.Integer.TYPE)(0) | ||
+ | >>1 | ||
+ | >aVector | ||
+ | >>< | ||
+ | >remove.cast(jlobby.java.lang.Object)(3) | ||
+ | >> | ||
+ | > | ||
+ | >>< | ||
</ | </ | ||
at/tutorial/symbiosis.txt · Last modified: 2013/05/17 20:25 by tvcutsem