在什么情况下Class.getDeclaringClass可能会得出与之不同的结果Class.getEnclosingClass?

我认为这可能与外部类的子类实例化一个未声明为静态的内部类有关,但我无法以这种方式获得区别:

public class Main {

private static class StaticInnerClass {

}

private class MemberInnerClass {

}

private static class ChildClass extends Main {

}

public MemberInnerClass getMemberInnerClassInstance() {

return new MemberInnerClass();

}

public static void main(String[] args) {

System.out.println( StaticInnerClass.class.getDeclaringClass() );

System.out.println( StaticInnerClass.class.getEnclosingClass() );

System.out.println( MemberInnerClass.class.getDeclaringClass() );

System.out.println( MemberInnerClass.class.getEnclosingClass() );

System.out.println( new ChildClass().getMemberInnerClassInstance().getClass().getEnclosingClass() );

System.out.println( new ChildClass().getMemberInnerClassInstance().getClass().getDeclaringClass() );

}

}

输出:

class Main

class Main

class Main

class Main

class Main

class Main

java 什么是封闭类,封闭类与声明类相关推荐

  1. java 内部类_java的内部类和静态内部类(嵌套类)

    背景 开发新项目,写Swager的mode的时候用到了嵌套Model,于是在代码中,出现了静态内部类.在codeReview的时候稍微和大家聊了一下.尤其是Static 修饰类和修饰对象和变量不一样呢 ...

  2. java初始化实例化_Java对象的创建过程:类的初始化与实例化

    一.Java对象创建时机 我们知道,一个对象在可以被使用之前必须要被正确地实例化.在Java代码中,有很多行为可以引起对象的创建,最为直观的一种就是使用new关键字来调用一个类的构造函数显式地创建对象 ...

  3. java类与对象作用_Java类与对象

    ●类和对象的关系: 一:类是对同一类事物(对象)的抽象,对象实际存在的该类的各种实体. 二:面向对编程的核心:找合适的对象来做合适的事. 三:Java中找到对象: 1):sun自己定义好的类,必须知道 ...

  4. java client类_Jmeter中自定义JavaSamplerClient类的编写

    自定义的JavaSamplerClient类需要满足以下几个条件: 1.需要把Jmter的ext目录下的ApacheJmeter_core.jar和ApacheJmetere_java.jar 引入到 ...

  5. java 找不到或无法加载主类- 解决方案

    java 找不到或无法加载主类- 解决方案 参考文章: (1)java 找不到或无法加载主类- 解决方案 (2)https://www.cnblogs.com/caibixiang123/p/1170 ...

  6. Java反射机制demo(四)—获取一个类的父类和实现的接口

    2019独角兽企业重金招聘Python工程师标准>>> Java反射机制demo(四)-获取一个类的父类和实现的接口 1,Java反射机制得到一个类的父类 使用Class类中的get ...

  7. java实现进程管理,Java调用批处理或可执行文件和Runtime、Process类实现Java版进程管理器...

    Java调用批处理或可执行文件 用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现.下面是一种比 ...

  8. Java IO流中 File文件对象与Properties类(四)

    File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 boolean createNewFile():创建新文件,如 ...

  9. Java并发编程,无锁CAS与Unsafe类及其并发包Atomic

    为什么80%的码农都做不了架构师?>>>    我们曾经详谈过有锁并发的典型代表synchronized关键字,通过该关键字可以控制并发执行过程中有且只有一个线程可以访问共享资源,其 ...

  10. Java常用工具类---IP工具类、File文件工具类

    package com.jarvis.base.util; import java.io.IOException; import java.io.InputStreamReader; import j ...

最新文章

  1. Windows7上配置Python Protobuf 操作步骤
  2. 一个功能齐全的DataGrid分页例子
  3. pytorch 模型可视化_PyTorch Tips(FLOPs计算/参数量/计算图可视化/相关性分析)
  4. 大连开发区取暖费能微信支付吗_下半年教资报考人数增加,那到底能不能异地报考呢?...
  5. 计算机原理与应用简称,基础知识-计算机原理与应用.ppt
  6. 2020微博用户发展报告
  7. [转]Reporting Service部署之访问权限
  8. 【转】Scala: Example use for early definition / early initializer / pre-initialized fields
  9. Codevs 1205 单词反转(Vector以及如何输出string)
  10. 大厂HR:“不会数据分析,你还想干运营?”
  11. elasticsearch 中文分词
  12. 20200615每日一句
  13. 两相四线步进电机C语言程序,两相四线步进电机时序
  14. Joplin实现样式更改
  15. 震惊!AI居然轻松消除马赛克-文字增强,GitHub开源项目上线三天收获近7000星
  16. 《软件测试》第二章 软件开发的过程
  17. 如何获取dgv中所显示的全部数据
  18. Quartus II 8.1 安装破解 方法
  19. R语言机器学习之caret包详解(一)
  20. python大漠插件多开_绝地助手_python挪用大漠插件教程04鼠键事宜及基本项目头脑...

热门文章

  1. HDU3954 线段树(区间更新 + 点更新)
  2. Stream上传插件(Java接口实现)
  3. 在dll中用DirectSound8同时播放多个wav文件不能发声
  4. ArrayList Vector LinkedList 区别与用法
  5. 构建自己的不可替代性
  6. matlab信号建模,Matlab在信号处理中的建模仿真
  7. 特征等宽离散化matlab程序_控制器的离散化(一)
  8. linux使用中的问题 ---(Cannot find a valid baseurl for repo: base)
  9. python两个函数中传递变量_如何在Python中向函数传递大量变量?
  10. prometheus linux下载_Prometheus笔记