Support for interface default methods when selecting an overloaded method
Nicolas Falliere <[email protected]> Wed, 4 Mar 2020 22:30:03 -0800
| Newsgroups | gmane.comp.lang.jython.devel |
|---|---|
| Message-ID | <CAJP=iOXPcyLQg1c1-P-82+TbX1iTbEh+0iH3jqZ-Ox_8968VJw@mail.gmail.com> |
Hello Jython Dev Team,
Per
https://www.jython.org/jython-old-sites/archive/221/archive/22/userguide.html#overloaded-java-method-signatures:
*"Java methods are allowed to be overloaded for different signatures (types
and number of arguments). When different versions of the method differ in
the number of arguments that they expect, the appropriate method can be
easily determined from the number of arguments passed to the method."*
With Jyhon 2.7 (2.7.1, and the current RC of 2.7.2 as well), this works
fine for regular class methods, eg:
class A {
void f(int a) {
return a + 1;
}
void f(int a, int b) {
return a+b;
}
}
in Jython:
A().f(4) # will select the proper overload
A().f(1, 2) # will select the proper overload
However, for interfaces:
interface I {
default void f(int a) {
return f(a, 1);
}
void f(int a, int b);
}
class A implements I {
void f(int a, int b) {
return a+b;
}
}
in Jython:
x = someMethodReturningAnObjectImplementingI()
x.f(4) # fail, complains that method should receive 2 args
So it looks like default methods, a language addition of Java 8, may not be
seen by the Jython interpreter. Is that the case, or am I doing something
wrong? In the former case, any chance to support that in a coming release?
Thank you & Best regards,
--
Nicolas Falliere ([email protected])
JEB Decompiler, Founder and Architect
PNF Software <https://www.pnfsoftware.com/> | Follow us on Twitter
<https://twitter.com/jebdec> | Join us on Slack
<https://www.pnfsoftware.com/chat> | Bulletin Board
<https://www.pnfsoftware.com/forum>
_______________________________________________
Jython-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jython-dev