在java中按名称获取颜色

Mat*_*ark 2 java colors

我正在使用包含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)

这不起作用

shm*_*sel 5

如果您的名称对应于 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)