Equivalent of public static final fields in Scala

Posted by JT on Stack Overflow See other posts from Stack Overflow or by JT
Published on 2010-03-29T03:58:39Z Indexed on 2010/03/29 4:03 UTC
Read the original article Hit count: 329

Filed under:
|

I'm learning Scala, and I can't figure out how to best express this simple Java class in Scala:

public class Color {
  public static final Color BLACK = new Color(0, 0, 0);
  public static final Color WHITE = new Color(255, 255, 255);     
  public static final Color GREEN = new Color(0, 0, 255);

  private static final int red;
  private static final int blue;
  private static final int green;

  public Color(int red, int blue, int green) {
    this.red = red;
    this.blue = blue;
    this.green = green;
  }

  // getters, et cetera
}

The best I have is the following:

class Color(val red: Int, val blue: Int, val green: Int)
object BLACK extends Color(0, 0, 0)
object WHITE extends Color(255, 255, 255)
object GREEN extends Color(0, 0, 255)  

But I lose the advantages of having BLACK, WHITE, and GREEN being tied to the Color namespace.

© Stack Overflow or respective owner

Related posts about scala

Related posts about java