我有一个简单的java方法,它根据从RGB转换而来的HSB值返回颜色。它工作(需要一些调整),但我使用一系列的其他if和if嵌套语句来返回我想要的数据。我听说HashMaps和字符串工厂比较好,但是我看不到这些工具如何处理远程数据。是否有更好的解决方案可以处理像这样的范围数据?如果使用范围数据,比其他解决方案更好的解决方案
段:
public static String getColorName() {
getHSB(rgb);
if(hsbH >= 45 && hsbH < 75) {
if(hsbS > 0 && hsbS < 45 && hsbB > 70){
return "White/Off White";
} else if(hsbS > 0 && hsbS < 45 && hsbB < 10) {
return "Dark Yellow";
} else {
return "Yellow";
}
} else if(hsbH >= 15 && hsbH < 45) {
if(hsbS > 0 && hsbS < 45 && hsbB > 70){
return "White/Off White";
} else if(hsbS > 0 && hsbS < 45 && hsbB < 10) {
return "Dark Orange";
} else {
return "Orange";
}
...
相反为什么不在'ColorRule'中添加'name'?然后,在应用程序的开始处,颜色规则将在一些已知的颜色列表中创建和定义,并且您只需在列表中查找一个颜色即可查找所有颜色。 –
@Stefan你说得对,那会更好。 –