将冗余if语句缩短为单个方法(Java)

时间:2015-11-09 03:21:39

标签: java user-interface methods

如何在一个方法中编写这段代码来缩短它?有没有办法接受输入并将其用于动作?示例:用户输入白色,它将替换bgColor = Color.x中的x;我只是试图摆脱所有的if语句。

dcast(df, formula = domain ~ feature, value.var = 'feature'))

3 个答案:

答案 0 :(得分:2)

或者,您可以轻松地将所有必需的颜色放入地图中,并根据地图过滤给定的颜色

Color bgColor;
String givenColor="blUe";
Map<String, Color> colors = new HashMap<>();
colors.put("RED", Color.RED);
colors.put("BLUE", Color.BLUE);
colors.put("WHITE", Color.WHITE);
colors.put("GREEN", Color.GREEN);

bgColor=colors.get(givenColor.toUpperCase());

答案 1 :(得分:1)

在java 7或更高版本中,您可以使用switch on string来使您的逻辑更简洁。首先将字符串转换为小写,这样您就不必担心用户输入的情况了。

.footer {
    padding: 30px 0px 30px 0px;
    position:absolute;
    bottom:0;
    width:100%;
    font-weight:bold;
}

.footer * {
    display: inline;
}

#copyright {
    margin-left: 50px;
    position:absolute;
}

.foot-scro {
    float: right; 
    width: 600px;
}

.foot-scro div {
    display: inline;
    margin-left: 3%;
    color: grey;
}

.foot-scro div:hover {
    color:black;
}

#page1-link {
    color:black;
}

答案 2 :(得分:0)

简短快捷的方法是做以下事情

Color bgColor = (Color) Color.class.getDeclaredField(colorString.toUpperCase()).get(null);

if(gbColor == null) {
    bgColor = DEFAULT_COLOR;
    sg.print("couldn't understand your color, so defaulting to black");
}