有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java破坏了函数,即使它看起来是正确的

我今天一直在测试我的应用程序,在我做了一个完全不相关的更改后,不知怎么的,一个功能坏了,最重要的是,我不明白为什么它不能工作

这是:

public static int componentStrId(String string)
    {
        for(int i = 0; i < GameMain.ComponentNames.length; i++)
        {
            Gdx.app.log("GameCoordinator", "componentStrId index: " + i);
            if(string == GameMain.ComponentNames[i])
            {
                return i;
            }
        }
        return -1;
    }

在您询问之前,是的,我输入的字符串存在于我搜索的数组中,但函数返回-1。它只是毫无意义地在数组中循环

我有一种感觉,月食吓坏了,虽然也许我只是瞎了眼,看不到明显的错误。。。那么它是什么,前者还是后者


共 (2) 个答案

  1. # 1 楼答案

    如果你提供

    GameMain.ComponentNames[3] 
    

    作为参数,它将返回3

    如果单独构造一个字符串,它将始终返回-1,因为只有当两个引用指向同一个对象时==才会返回true

  2. # 2 楼答案

    而不是这个

    if(string == GameMain.ComponentNames[i])
    

    用这个

    if(string.equals(GameMain.ComponentNames[i]))