Re: Named fields in enum constant declarations
Patricia Shanahan wrote:
TRUE_POSITIVE(new Color(100, 255, 100))
I would prefer to replace that with something like:
TRUE_POSITIVE(LIGHT_GREEN)
Just to be different, I went in another direction than Steven and
Joshua. It's two classes instead of one, but the result is pretty clean,
imo:
package fubar;
import static fubar.BaseColors.*;
public enum VisualizationColors {
TRUE_POSITIVE( LIGHT_GREEN ),
FALSE_POSITIVE( DARK_BLUE );
BaseColors color;
private VisualizationColors( BaseColors color )
{
this.color = color;
}
}
/// ------8<-------- New File, cut here ----8<----------
package fubar;
/**
*
* @author Brenden
*/
public enum BaseColors {
LIGHT_GREEN( 2, 90, 10 ),
DARK_BLUE( 4, 10, 90 );
/* I switch to floats at the last minute, I hope I didn't mess
anything up. */
private float r, g, b; // 0-100
private BaseColors( float r, float g, float b )
{
this.r = r;
this.g = g;
this.b = b;
}
public float getR()
{
return r;
}
public float getG()
{
return g;
}
public float getB()
{
return b;
}
}