NamedVariant on constructor

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

NamedVariant on constructor


Tried this example and got cast exception converting Map to Integer.  Should the print statement at the end use the generated map constructor as expected?  (Note: I am compiling with indy variant; tried to use web console to try vanilla MOP...)

import groovy.transform.*

import groovy.transform.options.*


class Color {

  final Integer r, g, b

  @NamedVariant @VisibilityOptions(Visibility.PUBLIC)

  private Color(Integer r, Integer g, Integer b) {

    this.r = r

    this.g = g

    this.b = b


  public static final Color BLACK = new Color(0, 0, 0)


print(new Color(g:12, b:42, r:12)) // gives org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '{}' with class 'java.util.LinkedHashMap' to class 'java.lang.Integer'