解决No enclosing instance of type * is accessible
2024-10-15 06:22:41
写一个内部类,并在构造函数中初始化时,遇到报错,搜索问题后发现,有网友出现过类似的问题,下面这个是说的浅显明白的,并确实解决了问题。于是,以下内容照搬过来,不再多费键盘了。
public class Test_drive { public static void main(String[] args){
A a = new A(); //报错
B b = new B(); //报错
System.out.println(b instanceof A);
}
class A{
int a;
}
class B extends A{
}
}
上面两个语句报错信息如下:
No enclosing instance of type Test_drive is accessible. Must qualify the allocation with an enclosing instance of type Test_drive (e.g. x.new A() where x is an instance of Test_drive).
在overflow上面查找到了类似的问题:http://stackoverflow.com/questions/9560600/java-no-enclosing-instance-of-type-foo-is-accessible/9560633#9560633
下面简单说一下我的理解:
在这里,A和B都是Test_drive的内部类,类似于普通的实例变量,如类的静态方法不可以直接调用类的实例变量。在这里,内部类不是静态的内部类,所以,直接赋值(即实例化内部类),所以程序报错。
解决的方法可以有以下两种:
(1)将内部类定义为static,即为静态类
(2)将A a = new A();B b = new B();改为:
Test_drive td = new Test_drive();
A a = td.new A();
B b = td.new B();
最新文章
- PHP流程控制之循环结构
- MongoDB学习笔记(索引)(转)
- MFC添加菜单事件
- PHP的命名空间
- JSON: property ";xxx"; has no getter method in class ";...";
- cometd使用-bayeux协议(读法:贝叶)
- Xcode中设置按钮在十分钟之内禁用
- Firebird/InterBase内置函数使用说明
- Raid1源代码分析--写流程
- 转: AlphaImageLoader简介
- shell多进程
- Linux环境配置文件的理解
- PhpSpreadsheet处理表格
- linux配置gitlab步骤
- python之使用位运算符实现加法运算
- robotframework连接mysql数据库
- Redis实现分布式锁的正确使用方式(java版本)
- CentOS 系列安装 Docker
- zookeeper超时:Unable to connect to zookeeper server within timeout: 5000
- 201621123008 《Java程序设计》第12周学习总结
热门文章
- Logcat monkey命令
- 笨鸟先飞之ASP.NET MVC系列之过滤器(05结果过滤器)
- wpf C# 数据库 c/s 个人信息管理 wpf局域网通信
- linux 下查找图片文件方法
- KDevelop使用笔记【中文】
- Linux入门(11)——Ubuntu16.04安装texlive2016并配置texmaker和sublime text3
- oracle 表空间不足解决办法
- 【转】浅谈UML的概念和模型之UML九种图
- 分享一个.NET加密工具NetEncryptor v2.1.6(破解版)
- JNI 对象处理 (转)