【问题标题】:Cannot resolve symbol message for method from a class无法解析来自类的方法的符号消息
【发布时间】:2022-01-28 16:16:42
【问题描述】:

我在 SQLiteOpenHelper 子类中创建了以下方法:

public List<Data> getAll(){
        List<Data> returnList = new ArrayList<>();
        String queryString = "SELECT * FROM " + table;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(queryString, null);
        if(cursor.moveToFirst()){
            do {
                int ID = cursor.getInt(0);
                int soundamp = cursor.getInt(1);
                String date = cursor.getString(2);
                String time = cursor.getString(3);
                double lat = cursor.getDouble(4);
                double lon = cursor.getDouble(5);
                Data newData = new Data(ID, soundamp, date, time, lat, lon);
                returnList.add(newData);
            }while(cursor.moveToNext());
        }

        cursor.close();
        db.close();
        return returnList;
    }

但是当我尝试在 MainActivity 中使用此方法时,单击按钮如下:

else if(v==viewAll){
            SQLite sql = new SQLite(MainActivity.this);
            List<Data> all = new sql.getAll();
        }

“getAll”以红色突出显示,当我将鼠标悬停在它上面时,我收到以下消息:无法解析符号“getAll”。 现在我尝试过使缓存无效并重新启动项目但没有成功,我也尝试过导入新项目但也没有成功。

【问题讨论】:

    标签: java android android-studio


    【解决方案1】:

    如果在调用getAll() 时删除new 关键字会怎样?您并没有在那里创建一个新对象,您的 all 列表只是从该方法中获取您返回的列表。

    else if(v==viewAll){
                SQLite sql = new SQLite(MainActivity.this);
                List<Data> all = new sql.getAll(); //remove new here
            }
    

    【讨论】:

    • 这对您有帮助,非常感谢
    • @Dest420 没问题,如果您希望其他用户看到这有效,可以单击答案复选标记。
    【解决方案2】:

    如果您想在 SQLite 类的实例上调用 getAll(),则在 SQLiteOpenHelper 类中创建 getAll() 方法没有帮助。

    SQLite 类的实例上调用getAll() 仅在SQLite 或其超类之一包含此类方法时才有效(并且很可能SQLiteOpenHelper 不是SQLite 的超类)。

    编辑:

    我忽略了@net00 发现的new 关键字,当然这使得编译器无法理解尝试的调用。 new 后面必须跟一个类名,而不是方法调用。

    【讨论】:

    • 参数有效,但我的问题表述错误,因为我的 SQLite 类扩展了 SQLiteOpenHelper,无论如何,谢谢,问题已解决。
    猜你喜欢
    • 2018-10-23
    • 2020-12-31
    • 2015-11-20
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多