无法解析android studio中的某些符号

ACl*_*mer 2 java android class

我一直有这个错误,我刚刚创建的项目的这个类(DataProvider)似乎不接受 .add 或 .put。但是我的 MainActivity 类可以很好地接受它们。我已经完成了无效缓存和重启。有人可以向我解释为什么会发生这种情况以及我可以做些什么来解决它?

数据提供者:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class DataProvider {
public static HashMap<String, List<String>> getInfo()

HashMap<String, List<String>> MoviesDetails = new HashMap<String, List<String>>();

List<String> Action_Movies = new ArrayList<String>();
 //'.add'  would be an error in red.  Cannot resolve symbol 'add'. 
Action_Movies.add("");
List<String> Romantic_Movies = new ArrayList<String>();

Romantic_Movies.add("");
List<String> Horror_Movies = new ArrayList<String>();
Horror_Movies.add("");
List<String> Comedy_Movies = new ArrayList<String>();
Comedy_Movies.add("");
Run Code Online (Sandbox Code Playgroud)

}

主要活动:

import android.app.Activity;
import android.os.Bundle;
import android.widget.ExpandableListView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


public class MainActivity extends Activity {
HashMap<String, List<String>> Movies_categories;
List<String> Movies_list;
ExpandableListView Exp_list;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    List<String> Test = new ArrayList<String>();
    Test.add("Test");



}
Run Code Online (Sandbox Code Playgroud)

}

Kel*_*dos 5

您在此行的末尾缺少分号:

public static HashMap<String, List<String>> getInfo()
Run Code Online (Sandbox Code Playgroud)

这使得分析的代码变得疯狂,无法将您的对象正确地视为它们的类型。只需添加分号。

此外,您可能希望删除行尾的括号,因为它表明它是一种方法。所以做这样的事情:

public static HashMap<String, List<String>> getInfo;
Run Code Online (Sandbox Code Playgroud)

或这个:

public static HashMap<String, List<String>> getInfo(){
    //Some actual code here, which returns a HashMap
};
Run Code Online (Sandbox Code Playgroud)

现在我看到你的整个班级结构都搞砸了。试试下面的代码:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class DataProvider {
public static HashMap<String, List<String>> getInfo;

    public DataProvider() { 

        HashMap<String, List<String>> MoviesDetails = new HashMap<String, List<String>>();

        List<String> Action_Movies = new ArrayList<String>();
        Action_Movies.add("");
        List<String> Romantic_Movies = new ArrayList<String>();

        Romantic_Movies.add("");
        List<String> Horror_Movies = new ArrayList<String>();
        Horror_Movies.add("");
        List<String> Comedy_Movies = new ArrayList<String>();
        Comedy_Movies.add("");

    }

}
Run Code Online (Sandbox Code Playgroud)