在java中编写多个if语句的更好方法

时间:2011-01-24 23:57:55

标签: java

您好,我最近一直在做很多java编程,而且我一直在使用很多if语句。问题是我必须复制并粘贴if语句一百多次来检查所有的senarios。这是一个例子:

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等等。我很抱歉,如果这不是很清楚我只是想不出更好的方式来说出来。提前谢谢。

2 个答案:

答案 0 :(得分:9)

请勿使用带编号的变量名称(例如j100j101等)。请改用数组,以便以编程方式遍历它们:

SomeType[] j = new SomeType[1000];

for (int z = 0; z < j.length; z++) {
    j[z] = new SomeType();

    j[z].setTooltipText("Hello world");
}

根据您的需要,您可能需要调查更高级的collections classes而非简单数组。

答案 1 :(得分:0)

您可以使用标签作为密钥Map<String, Runnable>Runnable。根据您编写Runnable子类的方式,这可以减轻大量冗余。

if( myMap.containsKey( myLabel ) ) {
  myMap.get(myLabel).run();
}