Enumeración de Java: no se puede hacer referencia a un campo antes de que se defina

Tengo una enumeración como la de abajo, pero eclipse dice que hay errores en la primera definición de cada par opuesto.

public enum Baz{
  yin(yang),    //Cannot reference a field before it is defined
  yang(yin),
  good(evil),   //Cannot reference a field before it is defined
  evil(good);

  public final Baz opposite;

  Baz(Baz opposite){
    this.opposite = opposite;
  }
}

Lo que quiero lograr es poder usarBaz.something.opposite para obtener elopuesto objeto deBaz.something. ¿Hay una posible solución para esto? Tal vez un marcador de posición vacío parayang ybad antes deyin ygood se definen en este ejemplo?

Respuestas a la pregunta(8)

Su respuesta a la pregunta