当前位置: 首页 > 知识库问答 >
问题:

返回枚举类

丌官嘉良
2023-03-14
public Boolean stringToBool(String value)
{
    return ( value.toUpperCase() == "TRUE" ) ? true : false;
}

public Double stringToDouble(String value)
{
    return ( value == null ) ? null : Double.valueOf(value);
}
public class MyClass
{
    private enum ENUM1 {
        HIGH,
        MED,
        LOW
    }

    private enum ENUM2 {
        DIFFICULT,
        MODERATE,
        EASILY
    }

    private Integer id;
    private String designSpec;
    private Double maxThickness;
    private ENUM1 enum1;
    private Boolean springs;
    private ENUM2 enum2;

    public Alloy()
    {
    }



    public Alloy(String designSpec,
                 String maxThickness,
                 String enum1, String enum2, String springs)
    {
        this.designSpec = designSpec;
        this.maxThickness = stringToDouble(maxThickness);
        this.enum1 = stringToEnum(ENUM1.class, enum1);
        this.enum2= stringToEnum(ENUM2.class, enum2);
        this.springs =  stringToBool(springs);
    }

    public Boolean stringToBool(String value)
    {
        return ( value.toUpperCase() == "TRUE" ) ? true : false;
    }

    public Double stringToDouble(String value)
    {
        return ( value == null ) ? null : Double.valueOf(value);
    }

    public Enum stringToEnum(Class enumType, String value)
    {
        return ( value == null ) ? null : Enum.valueOf(enumType, value);
    }

共有1个答案

夏意蕴
2023-03-14

ENUM1和ENUM2是不同的类;它们都扩展了java.lang.Enum。您可以编写一个将枚举作为参数的方法,并将它们中的任何一个传递给该方法。为了执行您所说的操作,您必须使用instanceof来确定传入的是哪个类,以便对它执行任何特定的操作。

我还没有尝试过,但您可以使用常规枚举方法在字符串和枚举之间进行转换,只要字符串与这些枚举匹配或声明为等效的。请查看枚举方法toString()和valueOf()以确定它们是否适合您。

您还可以有两个方法,一个接受ENUM1,一个接受Enum2;他们无论如何都不能共享代码。

 类似资料:
  • 问题内容: 在Java中,我有: 我希望本机方法“ nativeGetStatus”返回此枚举值。 JNI返回整数并与java中的enum的值进行比较是一个选项,但是想知道是否可以通过jobject返回值并将其直接分配给state吗?如果是,怎么办? 问题答案: 当然可以。枚举值是Enum类的公共静态字段,因此您可以使用此官方手册编写代码。只需从JNI获取字段并将其作为jobject返回即可。

  • 问题内容: 我想声明一个枚举Direction,它具有一个返回相反方向的方法(以下语法不正确,即,不能实例化枚举,但它说明了我的观点)。这在Java中可行吗? 这是代码: 问题答案: 对于那些按标题吸引的人:是的,您可以在枚举中定义自己的方法。如果您想知道如何调用这种非静态方法,则可以使用与其他任何非静态方法相同的方法- 在定义或继承该方法的类型实例上调用它。如果是枚举,则此类实例仅为s。 因此,

  • 我有一个实体,有一个枚举类型字段和一个具有相同枚举类型和字段名的DTO。 我使用modelMapper创建一个新对象,不需要额外的配置。 但在将dto映射到实体对象后,实体对象上的性别为空。 对象有性别,我已经检查了很多。 请帮我理解这个问题。

  • 我的模式如下 我正在尝试编写一个方法来检查代码并返回相应的枚举。 event.getStatusCode的有效值是:A,T,U。现在我需要检查这些代码并根据代码返回枚举。我尝试了上面的方法,但它给我代码=["A"]的错误。下面是错误状态。 我该怎么解决这个问题?我是java新手。非常感谢您的帮助,谢谢

  • 我正在尝试为此方法返回NotFound,但收到以下错误: 不明白应该怎么投,参数等于“1”想退一个404 我只需要这样做: