繁体   English   中英

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

[英]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等)替换它之后,它都可以替换它。 对不起,如果这不是很清楚,我只是想不出一种更好的措词了。 提前致谢。

不要使用带编号的变量名称(例如j100j101等)。 请改用数组,这样就可以以编程方式遍历它们:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM