我ReportTypeEnum在所有类中的方法之间传递的枚举类型,但我需要在URL上传递它,所以我使用序数方法来获取int值.在我的其他JSP页面中获取它之后,我需要将其转换回一个ReportTypeEnum以便我可以继续传递它.
我如何将序数转换为ReportTypeEnum?
使用Java 6 SE.
我想从其字符串值(或可能是任何其他值)查找枚举.我尝试了以下代码,但它不允许在初始化程序中使用静态代码.有一个简单的方法吗?
public enum Verbosity {
BRIEF, NORMAL, FULL;
private static Map<String, Verbosity> stringMap = new HashMap<String, Verbosity>();
private Verbosity() {
stringMap.put(this.toString(), this);
}
public static Verbosity getVerbosity(String key) {
return stringMap.get(key);
}
};
Run Code Online (Sandbox Code Playgroud) 以前,我将LegNo枚举定义为:
NO_LEG, LEG_ONE, LEG_TWO
Run Code Online (Sandbox Code Playgroud)
通过调用return LegNo.values()[i];,我能够获得与每个枚举相关的值.
但现在我已经决定我想要LegNo枚举NO_LEG为int -1而不是0所以我决定使用私有构造函数初始化并设置其int值
NO_LEG(-1), LEG_ONE(1), LEG_TWO(2);
private LegNo(final int leg) { legNo = leg; }
Run Code Online (Sandbox Code Playgroud)
现在唯一的事情是,因为我这样做,这个values()方法不适用于NO_LEG枚举.如何获得与int关联的枚举?除了使用case switch语句或if-elseif-elseif之外,还有其他有效的方法吗?
从enum中获取int值我可以看到很多SO问题,但是我正在反过来.
我想知道是否可以映射枚举变量和数据库。我想将黄色值(枚举变量)保存在数据库中
此类中使用了枚举:
@Getter
@Setter
@Table(name = "TIPOS_MOVIMIENTO")
@Entity
public class TipoMovimiento {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column
@Enumerated(EnumType.STRING)
private TipoMov tipo;
public String getTipo() {
return tipo.getTipoNombre();
}
@OneToMany(mappedBy = "tipoMov")
private List<Movimiento> movimientos;
Run Code Online (Sandbox Code Playgroud)
我的 DTO 课程:
@Getter
public class TipoMovimientoDto implements DtoEntity {
private TipoMov tipo;
}
Run Code Online (Sandbox Code Playgroud)
我尝试过 DTO
@Convert(converter = TipoMovEnumConverter.class) 私人TipoMov tipo;
但这不起作用