【发布时间】:2018-10-11 10:13:13
【问题描述】:
我有一个扩展 RecyclerView.Adapter 的类。
public class MainAdapter extends RecyclerView.Adapter<MainAdapter.ViewHolder> {
.
ArrayList<String> mDataset;
.
.
.
我为这个类添加了一个新的公共成员函数来返回mDataset
public ArrayList<String> getmDataset() {
return mDataset;
}
问题是在实例化 MainAdapter 时我无法在此类中引用 getmDataset(),
当我输入 new MainAdapter.getmDataset() 时,它显示 cannot resolve method 错误。
如何引用 getmDataset() ???
【问题讨论】:
-
(new MainAdapter()).getmDataset() ???
-
发布
MainAdapter.java。我的意思是完整的代码。 -
这是非常基本的:静态方法不需要相应类的对象,但它们只能访问静态数据。非静态方法可以访问非静态字段,但您只能在类的实例上调用它们。如果您还不了解这些基础知识……我建议您花几周的时间专注于 Java 基础知识。不要做“android”,除非你精通基本的java。
-
和不相关的:A) 阅读有关 java 命名约定...使用像 mDataSet 这样的后缀符号是不好的做法 B) 当你继续使用这些名称时:不要暴露它们在界面中 - 该方法应该(如果有的话)命名为
getData()或类似名称。请注意这里令人困惑的命名:您称其为 data set,但您使用 list 作为类型? -
恢复:通过调用
MainAdapter.getmDataset(),您正在尝试访问MainAdapter类的静态方法,而getmDataset()不是静态的。使用(new MainAdapter()).getmDatabaset()就可以访问了。
标签: java android class reference