Java中匿名类调用外部类的成员变量,提示不能对非静态字段静态引用,这是什么意思?
答案:1 悬赏:0 手机版
解决时间 2021-11-24 04:49
- 提问者网友:临风不自傲
- 2021-11-23 22:33
Java中匿名类调用外部类的成员变量,提示不能对非静态字段静态引用,这是什么意思?
最佳答案
- 五星知识达人网友:不甚了了
- 2021-11-23 23:55
你怎么调用的?
如果内部类有成员变量和外部类重名,要用 外部类名.this.成员变量 方式调用,你可能是 外部类名.成员变量 调用的,没有加 this追问直接在内部类中println这个变量名追答外部类名.this.成员变量
用这种方式试试追问不行,只能在外部类的修饰上加了static追答你把代码发上来,我看一下。追问
把其他的i都注释了,只留下了外部类的成员变量i提示不能对非静态……追答main是一个静态方法
你在一个静态方法里不能访问外部类的成员变量,除非把这个员变量也弄成静态的。追问哦,原来如此。把匿名类定在在main外就可以吗?定义在main外的一个方法里。追答是的,这样也可以。
如果内部类有成员变量和外部类重名,要用 外部类名.this.成员变量 方式调用,你可能是 外部类名.成员变量 调用的,没有加 this追问直接在内部类中println这个变量名追答外部类名.this.成员变量
用这种方式试试追问不行,只能在外部类的修饰上加了static追答你把代码发上来,我看一下。追问
把其他的i都注释了,只留下了外部类的成员变量i提示不能对非静态……追答main是一个静态方法
你在一个静态方法里不能访问外部类的成员变量,除非把这个员变量也弄成静态的。追问哦,原来如此。把匿名类定在在main外就可以吗?定义在main外的一个方法里。追答是的,这样也可以。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯