Currently there is no way to reliably predict which overloaded constructor will be used. var x = 1; print(new java.awt.Color(x, x, x)) // creates Color[r=1,g=1,b=1] var y = 1; y = y + 0; print(new java.awt.Color(y, y, y)) // creates Color[r=1,g=1,b=1] var z = 1; z = z * 1; print(new java.awt.Color(z, z, z)) // creates Color[r=255,g=255,b=255] Need to be able to new (java.awt["Color(int,int,int)"])(3,3, 4)