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

用java编写多个if语句的更好方法,java,Java,大家好,最近我做了很多java编程,使用了很多if语句。问题是我必须复制并粘贴if语句上百次才能检查所有的senarios。以下是一个例子: while (i < AreaNumbers.size()) { String roomnum = "j" + AreaNumbers.get(i); if (roomnum.equals("j100")) { if (k == 1) { j100.setVisi

大家好,最近我做了很多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.equalsj100{以及我想检查和比较的每个标签上的所有内容。我是否可以这样做,我可以写一个语句,在同一场景中,无论何时何地,只要看到j100,它都可以在每次之后用不同的标签替换它,例如j101 j107 an等。如果这不是很清楚,我只是想不出b更好的表达方式。提前感谢。

您可以使用一个映射,使用标签作为键并指向可运行的。根据您编写可运行子类的方式,这可以减少大量冗余

if( myMap.containsKey( myLabel ) ) {
  myMap.get(myLabel).run();
}
您可以使用标签作为键的映射和可运行的映射。根据您编写可运行子类的方式,这可以减少大量冗余

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

不要使用编号的变量名称,如j100、j101等。请改用数组,以便您可以通过编程方式循环它们:

SomeType[] j = new SomeType[1000];

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

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

根据需要执行的操作,您可能希望研究更高级的数组,而不是简单的数组。

不要使用编号的变量名称,如j100、j101等。请使用数组,以便您可以通过编程方式循环它们:

SomeType[] j = new SomeType[1000];

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

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

根据需要执行的操作,您可能希望研究更高级的数组,而不是简单的数组。

您有一个名为j100的变量,根据您的描述,此代码将重复100多次。这是否意味着您计划有100个这样的变量?因此您将使用动态变量,如php?${$name}您有一个名为j100的变量,根据您的描述,此代码将重复100多次。这是否意味着您计划有100个这样的变量?因此您将使用动态变量,如php?${$name}我相信这个方法对于这个问题有点太先进了。除了线程可以在CTO中运行的事实之外,Runnables还有什么要处理的?Runnabl只是一个与run方法的接口。不像C++,java没有操作符,因为我使用Runnabl。这是Java6中最接近的一个函子。你可以使用Ca。如果您不喜欢Runnable,可以使用Runnable,甚至可以创建自己的接口。据我所知,Runnable接口是为线程执行的操作而设计的,文档中甚至有这样的说明。实现此接口只是为了获得一个run方法似乎有点反常,您可以很容易地使用一个自定义接口来实现它esn不会导致对线程的混淆。为什么要引入一个几乎肯定与Runnable完全相同的新接口?Runnable是java目前最接近的一个不返回lambda/functor的接口。Runnable接口本质上没有将它与线程绑定在一起的东西。您也可以使用go或do或execute meth创建自己的接口这样,你就不会混淆那些习惯于在线程环境中看到可运行的人。我相信这个方法对于这个问题有点太先进了。除了线程可以在C++中运行java之外,Runnables还需要做什么?Runnabl只是一个与run方法的接口。我使用了Runnable运算符。这是我能找到的最接近java6中的functor的运算符。如果你不喜欢Runnable,你可以使用Callable,甚至可以创建自己的接口。据我所知,Runnable接口是为线程执行的操作而设计的,它甚至在文档中这样说。实现它似乎有点反常接口只是为了获得一个run方法,您可以很容易地使用一个不会导致线程混淆的自定义接口。为什么要引入一个几乎肯定与Runnable完全相同的新接口?Runnable是java目前最接近于不返回lambda/functor的接口。Runnable接口没有任何intriNSI将其绑定到线程。您还可以使用go或do或execute方法创建自己的接口。这样,您就不会混淆那些习惯于在线程环境中看到Runnable的人。我希望您永远不要到room-1我希望您永远不要到room-1