我正在使用包含Color对象的对象模型。
import java.awt.Color;
public class MyObject {
...
private String color;
public void setColor( Color c ) ...
public Color getColor() ...
...
}
Run Code Online (Sandbox Code Playgroud)
在 json 查询的响应中,我留下了一个颜色的物理名称
“颜色”:“蓝色”
我知道Color对象具有静态,即
Color.blue;
Run Code Online (Sandbox Code Playgroud)
有没有办法将实际颜色名称解码为 Color 对象?还是我需要自己手动将字符串映射到 rgb 值?
我正在寻找应该是这个输出的东西
Color c = new Color("blue");
Run Code Online (Sandbox Code Playgroud)
这不起作用
如果您的名称对应于 Java 常量的名称,则可以使用反射来映射它们:
public static Color getColorByName(String name) {
try {
return (Color)Color.class.getField(name.toUpperCase()).get(null);
} catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException e) {
e.printStackTrace();
return null;
}
}
Run Code Online (Sandbox Code Playgroud)