java - 如何从 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 语句时可以增加它。任何帮助表示赞赏,谢谢!
解决方案
在Run
类中,创建一个 getter 方法:
foo getFoo(){ // Cannot be private
return this.foo;
}
另外:二传手
void setFoo(Foo f){ // Also cannot be private
this.foo = f;
}