[英]Better way to write multiple if statements in java
嗨,最近我一直在做很多Java编程,并且我在使用很多if语句。 问题是我必须将if语句复制并粘贴一百多次以检查所有senario。 这是一个例子:
while (i < AreaNumbers.size()) {
String roomnum = "j" + AreaNumbers.get(i);
if (roomnum.equals("j100")) {
if (k == 1) {
j100.setVisible(true);
j100.setToolTipText("<html>" + "<br>" + "Room Number: " + AreaNumbers.get(i) + "<br>" + "Incident ID: " + IncidentID.get(i) + "<br>" + " Teacher: " + Teachers.get(i) + "<br>" + " Description: " + Descriptions.get(i) + "</html>");
k = k + 1;
} else if (k > 0) {
j100.setToolTipText(k + " help desk calls, click here for more information");
k = k + 1;
}
在此示例中,我将复制并粘贴if (roomnum.equals("j100")) {
,然后粘贴所有要检查和比较的标签。 无论如何,我可以这样做吗?我可以写一条遍历相同场景的语句,到处都可以看到j100
,每次用一个不同的标签(例如j101,j107等)替换它之后,它都可以替换它。 对不起,如果这不是很清楚,我只是想不出一种更好的措词了。 提前致谢。
不要使用带编号的变量名称(例如j100
, j101
等)。 请改用数组,这样就可以以编程方式遍历它们:
SomeType[] j = new SomeType[1000];
for (int z = 0; z < j.length; z++) {
j[z] = new SomeType();
j[z].setTooltipText("Hello world");
}
根据您需要执行的操作,您可能需要研究更高级的集合类,而不是简单的数组。
您可以将Map<String, Runnable>
用作标签,并将其用作键,并将其用作Runnable
。 根据您如何编写可运行子类,这可以减轻很多冗余。
if( myMap.containsKey( myLabel ) ) {
myMap.get(myLabel).run();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.