0

我有代码,我在其中定义了 350 多个变量以在 350 多个 if else 语句中使用。

我的问题是:“为什么我的代码需要 30 多秒来更新我使用自动填充管理器粘贴的内容?这是因为我有这么多 if、else if 语句和定义的变量吗?”

//350+ defined initially
        var A244: String = "A244" //1

        var C219: String = "C219"  //2

        var A099: String = "A099"  //3

        var A169: String = "A169"  //4

        var A185: String = "A185"  //5
//    ETC ETC ETC...


//THEN THE 350+ ELSE IF STATMENTS BEGIN
     else if (A985.compareTo(punitstring) == 0) {
            val mtext2 = findViewById(R.id.textView4) as TextView
            mtext2.setText("4-5t DBB")
            val mtext3 = findViewById(R.id.textView8) as TextView
            mtext3.setText("Second")
        }
        else if (B024.compareTo(punitstring) == 0) {
            val mtext2 = findViewById(R.id.textView4) as TextView
            mtext2.setText("N/A0")
            val mtext3 = findViewById(R.id.textView8) as TextView
            mtext3.setText("First")
        }
        else if (B199.compareTo(punitstring) == 0) {
            val mtext2 = findViewById(R.id.textView4) as TextView
            mtext2.setText("N/A1")
            val mtext3 = findViewById(R.id.textView8) as TextView
            mtext3.setText("First")
        }
        else if (B215.compareTo(punitstring) == 0) {
            val mtext2 = findViewById(R.id.textView4) as TextView
            mtext2.setText("N/A2")
            val mtext3 = findViewById(R.id.textView8) as TextView
            mtext3.setText("First")
        }
        else if (B218.compareTo(punitstring) == 0) {
            val mtext2 = findViewById(R.id.textView4) as TextView
            mtext2.setText("DC Walkie")
            val mtext3 = findViewById(R.id.textView8) as TextView
            mtext3.setText("First")
        }
        else if (B219.compareTo(punitstring) == 0) {
            val mtext2 = findViewById(R.id.textView4) as TextView
            mtext2.setText("AC 3 WS")
            val mtext3 = findViewById(R.id.textView8) as TextView
            mtext3.setText("First")
        }

从我的代码中,您可以看到我粘贴的内容(请参见下面的“之前”图片),但经过一番思考,IDE 会更新为之后图片中显示的内容(请参见下面的“之后”图片)。我相信这可能是由于声明太多,但需要一些确认,并且可能需要一些关于我应该如何开始清理它的输入。

之前,当 IDE 最初加载时: https ://i.stack.imgur.com/OOBqR.jpg

在等待经理使用自动填充更新代码大约 30 多秒后: https ://i.stack.imgur.com/9LjwR.jpg

我已经尝试为 IDE 分配最大数量的磁盘和 RAM 空间,但这并没有帮助。

我的下一步是可能将所有 var 连接到一个特定的语句。我不确定如何缩短 if 语句。

谢谢!

4

1 回答 1

0

经过多次尝试,我结束了自己的修复。

我做了什么:

  • 每次我更新一行代码时,添加的每个变量都会导致需要在 IDE 中更新的警告。通过将警告设置为“val”而不是“var”来修复警告可以加快速度。

  • 真正有帮助的另一件事是对某些 if 语句执行“清理代码”alt+enter 操作。

  • 最有帮助的最后一件事显然是如果你有超过 4 个 if/else 语句,你应该只使用“When”语句。这提供了最大的处理效率。

于 2019-09-23T12:33:42.127 回答