Extending a Java class

Sundararajan Athijegannathan sundararajan.athijegannathan at oracle.com
Wed Oct 3 12:32:06 UTC 2018


protected methods of super class are made public in the generated script 
subclass. Java.super should have worked. If you can submit a simpler 
test case, it may be possible to see what's happening..

Thanks
-Sundar

On 02/10/18, 3:52 PM, Axel Dörfler wrote:
> Hi Sundar,
>
> Am 01/10/2018 um 05:00 schrieb Sundararajan Athijegannathan:
>> In your example, it seems you're trying to add a new method to the 
>> subtype created in script. That is not supported. You can override 
>> existing methods of superclass  - but not add a new method to the 
>> Java type.
>
> Bummer! resourcetrysuggester.js added new fields to a Java type, so I 
> thought it should work.
>
>> Note that all super methods (including protected ones) are available 
>> via Java.super. For example, you can invoke 
>> Java.super(filter).fireMatchNode(). So the workaround for this case 
>> would be add utility function outside for "setEnabled".
>
> This does sound like an acceptable work-around, however, it doesn't 
> seem to work:
> TypeError: Java.super(filter).fireMatchNone is not a function
>
> I guess there is no way to call protected methods from JavaScript 
> then? Well, I guess reflection will work.
>
> Kind regards,
>    Axel.


More information about the nashorn-dev mailing list