直接回答您的问题:
内部类不能具有静态声明
完全是真的。这不是错误,错误消息甚至没有误导。
我听说将嵌套类用作静态方法更好,这样您就不会浪费引用
你是绝对正确的。
- 为您提供的解决方案:
在您的项目中创建一个新的类(文件),
ItemsViewAdapter不会出现这样的错误。
一般讨论;一般交流
Java和Android都支持您可以声明
static内部类/成员/函数, 但 该类应该是父类。您不能在内部类中执行此操作。
即,
class Main可以具有,
static classAdapter但是如果
Adapter该类是
Main不是静态的内部类,则它不能具有自己的静态内部类/成员。
你能拥有什么?
class Main static class Adapter static class Holder
要么
class Adapter static class Holder
如果要将类的任何成员声明为,
static则直接父类必须是该文件中的顶级主类。
为什么?
引用另一个答案,这是因为内部类与其外部类的实例隐式关联,所以它本身不能定义任何静态方法。由于静态嵌套类无法直接引用其封闭类中定义的实例变量或方法,因此只能通过对象引用来使用它们,因此在静态嵌套类中声明静态方法是安全的。
关于该主题的进一步阅读
1 http://www.geeksforgeeks.org/inner-class-
java/
2 http://www.javaworld.com/article/2077372/learn-java/static-class-
declarations.html
3 http://viralpatel.net/blogs/inner-classes-in-
java/



