Java无法访问内部类中的受保护变量

雅亚·乌丁(Yahya Uddin)

这是我的代码

class LinkedUserList implements Iterable{
    protected LinkedListElement head = null;    /*Stores the first element of the list */
    private LinkedListElement tail = null;    /*Stores the last element of the list */
    public int size = 0;                      /* Stores the number of items in the list */

//Some methods....
//...

    public Iterator iterator() {
        return new MyIterator();
    }

    public class MyIterator implements Iterator {
        LinkedListElement current;

        public MyIterator(){
            current = this.head; //DOSEN'T WORK!!!
        }

        public boolean hasNext() {
            return current.next != null;
        }

        public User next() {
            current = current.next;
            return current.data;
        }
        public void remove() {
            throw new UnsupportedOperationException("The following linked list does not support removal of items");
        }
    }
private class LinkedListElement {
    //some methods...
    }
}

问题是我有一个称为head的受保护变量,但是当尝试从MyIterator子类访问它时,尽管该变量受到保护,它也无法正常工作。

为什么它不起作用,我该怎么办?

非常感谢!!!

JB Nizet

this 始终引用当前对象。所以,内MyIteratorthis指的是MyIterator实例,而不是名单。

您需要使用LinkedUserList.this.head或简单head地访问head外部类成员。请注意,内部类可以访问其外部类的私有成员,因此head不必如此protected可以private

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法访问Java中的内部类问题

来自分类Dev

PHP:无法访问受保护的变量

来自分类Dev

无法访问受保护的变量

来自分类Dev

无法访问内部类中的LinkedHashMap

来自分类Dev

无法访问C ++中的内部类

来自分类Dev

从内部类中访问Java actionlistener变量

来自分类Dev

如何使“孙子”类中的受保护成员无法访问

来自分类Dev

无法访问特征中的受保护属性

来自分类Dev

扩展功能中无法访问受保护的成员?

来自分类Dev

无法访问派生类中的受保护成员

来自分类Dev

无法访问类中受保护的最终同步方法

来自分类Dev

访问内部类中的变量

来自分类Dev

从内部类中的with访问的变量

来自分类Dev

内部类中的变量访问

来自分类Dev

父类中受保护的内联方法无法访问其他受保护的方法

来自分类Dev

无法从内部类中访问全局最终变量

来自分类Dev

无法访问JavaScript中的Java变量

来自分类Dev

公开受保护的内部类

来自分类Dev

Java内部类-访问外部对象的变量

来自分类Dev

访问内部类变量

来自分类Dev

访问内部类中的局部变量

来自分类Dev

内部类变量中的读取访问冲突

来自分类Dev

在Android内部类中访问变量

来自分类Dev

无法访问 datasnapshot.haschild() 方法的外部类变量

来自分类Dev

为什么继承的类的实例无法访问不同包中基类的受保护成员

来自分类Dev

为什么继承的类的实例无法访问不同包中基类的受保护成员

来自分类Dev

好友类别无法访问受保护的成员

来自分类Dev

无法访问受保护的属性-laravel 4

来自分类Dev

无法访问受保护的属性 - Laravel 5.7 - Docker