uso titledborder poner definicion borde java enums

poner - titledborder java



¿La mejor manera de crear enumeración de cuerdas? (7)

Configure el nombre de enumeración para que sea el mismo que la cadena que desea o, más generalmente, puede asociar atributos arbitrarios con sus valores de enumeración:

enum Strings { STRING_ONE("ONE"), STRING_TWO("TWO"); private final String stringValue; Strings(final String s) { stringValue = s; } public String toString() { return stringValue; } // further methods, attributes, etc. }

Es importante tener las constantes en la parte superior y los métodos / atributos en la parte inferior.

¿Cuál es la mejor manera de hacer que un tipo de enum represente un conjunto de cadenas?

Intenté esto:

enum Strings{ STRING_ONE("ONE"), STRING_TWO("TWO") }

¿Cómo puedo usarlos como Strings ?


Dependiendo de lo que quieras decir con "usarlos como cadenas", es posible que no quieras usar una enumeración aquí. En la mayoría de los casos, la solución propuesta por The Elite Gentleman le permitirá usarlos a través de sus métodos de String s = "Hello "+STRING_TWO , por ejemplo, en System.out.println(STRING_ONE) o String s = "Hello "+STRING_TWO , pero cuando realmente necesite Strings ( por ejemplo, STRING_ONE.toLowerCase() ), es posible que prefiera definirlos como constantes:

public interface Strings{ public static final String STRING_ONE = "ONE"; public static final String STRING_TWO = "TWO"; }


No sé lo que quieres hacer, pero así es como traduje tu código de ejemplo ...

/** * */ package test; /** * @author The Elite Gentleman * */ public enum Strings { STRING_ONE("ONE"), STRING_TWO("TWO") ; private final String text; /** * @param text */ Strings(final String text) { this.text = text; } /* (non-Javadoc) * @see java.lang.Enum#toString() */ @Override public String toString() { return text; } }

Alternativamente, puede crear un método getter para text .

Ahora puedes hacer Strings.STRING_ONE.toString();


Puedes usar eso para cuerdas Enum

public enum EnumTest { NAME_ONE("Name 1"), NAME_TWO("Name 2"); private final String name; /** * @param name */ private EnumTest(final String name) { this.name = name; } public String getName() { return name; } }

Y llamar desde el método principal.

public class Test { public static void main (String args[]){ System.out.println(EnumTest.NAME_ONE.getName()); System.out.println(EnumTest.NAME_TWO.getName()); } }


Si no desea utilizar constructores y desea tener un nombre especial para el método, intente esto:

public enum MyType { ONE { public String getDescription() { return "this is one"; } }, TWO { public String getDescription() { return "this is two"; } }; public abstract String getDescription(); }

Sospecho que esta es la solución más rápida . No hay necesidad de utilizar variables finales .


Usa su método de name() :

public class Main { public static void main(String[] args) throws Exception { System.out.println(Strings.ONE.name()); } } enum Strings { ONE, TWO, THREE }

cede ONE .


Valores de cadena personalizados para Enum

de http://javahowto.blogspot.com/2006/10/custom-string-values-for-enum.html

El valor de cadena predeterminado para la enumeración java es su valor nominal o el nombre del elemento. Sin embargo, puede personalizar el valor de cadena anulando el método toString (). Por ejemplo,

public enum MyType { ONE { public String toString() { return "this is one"; } }, TWO { public String toString() { return "this is two"; } } }

Ejecutar el siguiente código de prueba producirá esto:

public class EnumTest { public static void main(String[] args) { System.out.println(MyType.ONE); System.out.println(MyType.TWO); } } this is one this is two