静态方法中不能new内部类的实体对象

原因如下:

1.内部类可以访问外部类的成员变量

2.对象创建完成后对象的成员变量才会被分配空间

3.main的静态方法执行时可以不存在外部类,不创建实体对象

4.内部类能访问成员变量意味着一定存在外部类实体对象

因为3和4矛盾,所以在静态方法中不能new内部类的实体对象

这个是错误的

class demo{    
    public void func(){
        //位置1;
    }
    class Inner{}
    
    public static void main(String[] args){
        demo d=new demo();
        // 位置2
        new Inner();
        
        
    }
}

时间: 2024-10-12 12:33:46

静态方法中不能new内部类的实体对象的相关文章

内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例

内部类访问外部类的变量必须是final吗? 如下:class A{int i = 3;public void shout(){ class B{public void shout1(){System.out.println(i);} }B b=new B();b.shout1();} public static void main(String [] args){A a=new A();a.shout();} }可正常输出3,证明可以访问类的变量i,但改为下面的方式:class A{public

序列化和反序列化:将本地文件中的数据反序列化成实体对象

(1)将本地文件中的数据反序列化成实体对象 (2)将实体对象序列化 .txt中json格式的数据为:{"Name":"张三","Age":20,"Address":"上海市徐汇区"} 第一步: 添加dll引用:Newtonsoft.Json.dll (网上下载一个) using Newtonsoft.Json; 第二步: 新建一个Student实体类: public class Student { publ

静态方法中直接使用注入的bean对象

问题:静态方法中注入bean分析问题:先看一段代码 @Componentpublic class ScriptExecuteContent { @Autowired private static SignRepository signRepository; public static String checkSign(String certNo, String acctNo, String instCode) { Sign sign = signRepository.findByCertNoAn

CAD由一个自定义实体事件中的id得到自定义实体对象(com接口VB语言)

由一个自定义实体事件中的id得到自定义实体对象.该函数只能在自定义实体事件中调用. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 If sEventName = "MxDrawXCustomEntity::explode" Then             Dim param66 As M

Objective-C中ORM的运用:实体对象和字典的相互自动转换

http://blog.csdn.net/cooldragon/article/details/18991973 iOS开发中基于ORM的框架很多,如SQLitePersistentObject,实际开发中需求不同或场景不同,方式方法也就不同,有时项目中用不上ORM框架,或者出于公司或项目组习惯或规范.实际项目需求或技术要求等等原因,不会采用完整的ORM框架,但一些重复啰嗦的代码使用一定的ORM功能还是很能提高效率的. 基于性能或灵活性考虑,或复杂查询的需求,或项目组要求,项目中数据库存取一般直

Hibernate中实体对象的状态

实体对象的状态 这里的实体对象是指Hibernate的O/R映射关系中的域对象(即O/R中的O).实体对象的生命周期是指实体对象由产生到被GC回收的一段过程,实体对象的生命周期包括3种状态:自由状态(Transient),持久状态(Persistent)和游离状态(Detached). 1.自由状态 自由状态是指实体对象在内存中自由存在,但此时它与数据库无关.主要有一下两个特征: >> 不处于Session的缓存中,也就是不被任何一个Session关联. >> 在数据库中没有对应的

Andorid Binder进程间通信---Binder本地对象,实体对象,引用对象,代理对象的引用计数

本文参考<Android系统源代码情景分析>,作者罗升阳. 一.Binder库(libbinder)代码: ~/Android/frameworks/base/libs/binder ----BpBinder.cpp ----Parcel.cpp ----ProcessState.cpp ----Binder.cpp ----IInterface.cpp ----IPCThreadState.cpp ----IServiceManager.cpp ----Static.cpp ~/Androi

Java中为什么main()中不能创建内部类对象?

对main方法而言,虽然写在类中,它是游离于任何类之外的,因此某类的非静态内部类对它而言是不直接可见的,也就无法直接访问 . 1:非静态内部类,必须有一个外部类的引用才能创建. 2:在外部类的非静态方法中,因为有隐含的外部类引用this,所以可以直接创建非静态内部类. 3:在外部类的静态方法中,因为没有this,所以必须先获得外部类引用,然后创建非静态内部类. 4:静态内部类,不需要外部类引用就可以直接创建. 5:同时静态的内部类,也不能直接访问外部类的非静态方法. 6:由此可以推测,非静态内部

EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) EO理论上是只有产品组维护,里面包含其所有的业务逻辑,并提供相应的Expert给自己或者其它产品组使用.而VO是各个组根据需要或基于EO或者只读的SQL而建立的,里面可以根据需要添加自己的业务实现和逻辑. 对于EO内部的验证功能,在开发文档中主要介绍了三种: 1. 在setter里面实现单个属性的验证.这主要是对于没有依赖关系的属性,也就是说它的验证不需要其它会被修改的属性的支持.比如,验证