首页 > 解决方案 > 安卓。将字符串转换为枚举

问题描述

我使用改造 Gson。我从服务器收到以下响应:

class Data {
 @SerializedName("color") 
 private String color;
  @SerializedName("name")
  String name;
..... 
}

从示例中可以看出,颜色是一个字符串。但是,我不想每次都在代码中进行字符串比较。我想使用枚举。您能否告诉我,在接收到来自服务器的响应时,是否可以将字符串转换为枚举,以便于使用。

标签: javaandroidjsonenumeration

解决方案


例子:

enum Color {
    RED(1), GREEN(2), BLUE(3), YELLOW(4);
    
    private final int id;
    
    Color (int id) {
        this.id = id;
    }
}

颜色到字符串:

String string = color.toString();

字符串到颜色:

Color color = Color.valueOf(string);

^^ 使用它将字符串转换回颜色。

如果它不起作用,则颜色可能已以不同方式转换为字符串。在这种情况下,让服务器发送 color.toString(); 而不是颜色。


推荐阅读