考虑以下代码
class OuterClass{
class InnerClass{
int x;
int y;
void calculateX(){
x = y+z;//I want to access the y field of the outer class
}
void printX(){
print();
}
}
int y;
int z;
InnerClass instance;
OuterClass(int y,int z){
this.y = y;
this.z = z;
instance = new InnerClass();
instance.y = 10;
instance.calculateX();
instance.printX();
}
void print(){
System.out.println("X:"+instance.x+"\nY:"+y+"\nZ:"+z+"\n");
}
}
如果名称重叠,如何访问外部类的字段?
我尝试了以下方法:
x=super.y;
x=OuterClass.y;
并收到编译错误。
现实生活中会不会发生这种情况?
最好的解决方案是为字段赋予有意义的名称和不同的名称。但这并不总是可能的…
要获取字段或外部实例,您可以使用
OuterClass.this.y;
或者该字段是静态的
OuterClass.y;
注意:y
通常是缩写this.y
(取决于y
实际定义的位置)
同样,您需要调用外部类的实例方法。
OuterClass.this.method();
要么
OuterClass.method(); // static
注意:在Java 8中,您有可能是基于实例的方法引用。例如
list.stream().filter(OuterClass.this::predicate);
我使用的是,我需要展平包含同名字段的文档。 我创建的文档如下所示: 在那之后,我试图像下面这样压平文档: 我的主要方法是: 展平后,我得到的文档包含一个展平字段,但我必须得到两个展平字段。 如何解决此问题?
我有一个PDF文件,其中包含一个表单,其中的字段具有相同的字段名。这是为了共享文档中的数据而做的。例如,我有合同,此文档的每一页都必须有公司名称,我将公司名称写在一个表单字段中,并将其复制到当前文档的所有页面,但是当我尝试使用库阅读此文档时,我没有得到此数据,因为只创建一个字段名为的字段,而另一个字段名为clean。 如何使用库读取具有相同字段名称的字段?
问题内容: 我有一个字段和一个具有相同名称的局部变量。如何进入该领域? 码: 在c ++中使用::运算符,如下所示: 是Java中的::运算符吗? 问题答案: 那不是全局变量,而是实例变量。只需使用: (有关的含义,请参见JLS第15.8.3节。) 对于 静态 变量(人们在谈论全局变量时通常指的是 静态 变量),您可以使用类名来限定变量名: 在大多数情况下,我宁愿不要使用与实例或静态变量同名的局部
我正在探索GraphQL,想知道是否有任何重命名响应字段的方法,例如我有一个POJO与这些字段 GraphQL查询: 我的回答是这样的 我是否可以将名称字段重命名为类似用户名的名称,以便我的回答如下
问题内容: 我有一个班和一个子班 好的,在05行中,id喜欢访问A类的方法测试。但是我陷入了循环,因为我不知道如何指定使用A类的方法。 有任何想法吗? 问题答案: 编辑:正如@Thilo提到的:避免在外部类和内部类中使用相同的方法名称,这将避免命名冲突。
问题内容: 我今天在另一个问题中提出了这个问题,但是 由于措辞的方式,恐怕无法解决任何问题。 我有一个json输入,其中包含以下数据: 杰森 如您所见,option_value项是一个对象中的Array和 另一个对象中的简单字符串。 我怎样才能让Gson正确处理呢?我的类将此描述为 List对象,因此它适用于option_value是 数组的前几个项目,但是当它成为字符串时,应用程序崩溃,并且我收