Field Method Conflicts

Attila Szegedi szegedia at gmail.com
Fri Jan 19 17:39:19 UTC 2018


No, there isn’t really. Nashorn (well, actually Dynalink that’s underlying Nashorn’s Java-binding functionality) gives preference to a method over a field as methods are more flexible, can include preconditions, can be overridden etc. There’s an assumption that whoever designs the class with both a field and a method sharing their name (or method name conforming to getter convention for the property) would consider the method to be more specific.

Attila.

> On 2018. Jan 19., at 10:31, Nathan Faulkner <natedogith1 at gmail.com> wrote:
> 
> Is there any way, other than reflection, to access a field that shares a
> name with a method? It seems that, with the Test class,  instance.item
> returns the item() dynamic method (as does instance["item"]), and
> instance.item2 returns "b".
> 
> public class Test {
>  public String item = "1";
>  public String item2 = "2";
> 
>  public String item() {
>    return "a";
>  }
> 
>  public String getItem2() {
>    return "b";
>  }
> }
> 
> 
> Thanks,
> Nathan Faulkner



More information about the nashorn-dev mailing list