当前,我正在使用使用SDK 19的Android Studio 3开发一个android项目。我的个人目标是生成几乎没有警告的代码,以提高我的代码质量。
在以RecyclerViewAdapter
作为内部类为我的RecyclerView
设置ViewHolder
时,我遇到了Android Studio的这种奇怪行为,它标志着ViewHolder
的访问成为私人的但是,当我这样做时,我的RecyclerView.Adapter
类的声明中已经出现错误。知道我特别在做什么错吗?
这是我的ErrorCompactAdapter
的骨架结构:
public class ErrorCompactAdapter extends RecyclerView.Adapter<ErrorCompactAdapter.ErrorCompactViewHolder> {
//fields and attributes
//cotr
//onCreateViewHolder
//onBindViewHolder
//getItemCount
protected class ErrorCompactViewHolder extends RecyclerView.ViewHolder {
//outlets
//cotr
}
}
警告明确指出,ErrorCompactViewHolder
的访问可以是私有的。如果我更改此设置,则会收到一条错误消息,提示ErrorCompactAdapter.ErrorCompactViewHolder has a private access in ErrorCompactAdapter
。这有点令人困惑,您能想象吗?知道吗,如果我在某个地方挖了自己的陷阱,该怎么办?谢谢。
答案 0 :(得分:1)
Android Studio建议您将ErrorCompactViewHolder
的访问修饰符更改为 package-private ,而不要更改为 private 。
Package-private是Java中的默认访问修饰符,这意味着该类将在其包的范围内可用。
要为该类提供默认的(程序包专用)访问修饰符,则需要完全删除访问修饰符。
答案 1 :(得分:0)
应该是私有静态字段吗?