首页 > 解决方案 > 如何从 starter 类中的方法访问私有整数(在嵌套类中声明)?

问题描述

我见过很多关于访问私有方法的问题,但没有看到关于访问私有整数的问题,所以我认为这值得一问。基本上,我有我的主类 RunnyStack,以及一个名为 Run 的私有嵌套类。在 Run 内部,我初始化了一个私有整数长度,我试图从 RunnyStack 中的一个方法访问这个私有 int。

我已经尝试过搜索这个问题(太久了),我找到的答案对我不起作用,因为(根据类指令)我需要在 Run 中将长度声明为私有 int。这意味着(根据我的尝试)我不能执行“Run hello = new Run();”,因为它说“构造函数 RunnyStack.Run() 未定义”。我还尝试了“RunnyStack.Run len = new RunnyStack” .Run();',但它只是说'构造函数 RunnyStack.Run() 未定义'

    class RunnyStack<Base> {
private class Run {
    private Base base;
    private Run next;
    private int length;

    private Run(Base base, Run next) {
        this.base = base;
        this.next = next;
        this.length = 0;
    }
}

此代码显示嵌套私有类的创建,包括私有整数长度。

    public void push(Base base) {
    if(isEmpty()) {
        top = new Run(base, top);
    }
    else {
        if(base == top) {
            length += 1;
        }
    }
}

这段代码显示了我试图访问长度的方法

我要做的就是访问长度,以便在满足 if 语句时可以增加它。任何帮助表示赞赏,谢谢!

标签: java

解决方案


Run类中,创建一个 getter 方法:

foo getFoo(){ // Cannot be private
    return this.foo;
}

另外:二传手

void setFoo(Foo f){ // Also cannot be private
    this.foo = f;
}

推荐阅读