private void setIsSelected() {
if (option.equals("length")) {
isSelectedLength.setVisible(true);
} else {
isSelectedLength.setVisible(false);
}
if (option.equals("weight")) {
isSelectedWeight.setVisible(true);
} else {
isSelectedWeight.setVisible(false);
}
if (option.equals("temp")) {
isSelectedTemp.setVisible(true);
} else {
isSelectedTemp.setVisible(false);
}
if (option.equals("area")) {
isSelectedArea.setVisible(true);
} else {
isSelectedArea.setVisible(false);
}
if (option.equals("time")) {
isSelectedTime.setVisible(true);
} else {
isSelectedTime.setVisible(false);
}
}
我觉得好像有更好更清洁的方法让这个方法有效。 if else语句有效,但感觉好像我在重复自己。欢迎任何建议。
答案 0 :(得分:3)
要做的一件事是在setter中使用let str=
`2.3.4.5
2.44.2
2.3.4.1
2.3.3.3
3.4.2.4.5
`;
console.log(
str.match(/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/gm)
);
的值:
option.equals(...)
答案 1 :(得分:0)
您可以将节点放在Map<String, Node>
中,以使方法的代码更短/更少重复:
Map<String, Node> nodesByString = new HashMap<>();
nodesByString.put("length", isSelectedLength);
nodesByString.put("weight", isSelectedWeight);
...
private void setIsSelected() {
for (Node n : nodesByString.values()) {
node.setVisible(false);
}
Node visibleNode = nodesByString.get(option);
if (visibleNode != null) {
visibleNode.setVisible(true);
}
}