1、getDeclaringClass
  return the declaring class for this class
  获取对应类的声明类Class对象
2、getEnclosingClass
  return the immediately enclosing class of the underlying class
  (获取对应类的直接外部类Class对象)

区别:
两者的区别在于匿名内部类的使用上、getEnclosingClass能够获取匿名内部类对应的外部类Class对象,而getDeclaringClass不能够获取匿名内部类对应的声明类Class对象。

代码示例:

/*** @author <a href="wangte@meitaun.com">Te</a>* @date created at 2019/5/6*/
public class ClassTest {/*** 1、Class.GetEnclosingClass* <doc>获取对应类的直接外部类Class对象</doc>* 2、Class.GetDeclaringClass* <doc>获取对应类的声明类Class对象</doc>* 3、两者的区别* <p>* GetEnclosingClass与GetDeclaringClass很相近* 两者的区别在于匿名内部类、getEnclosingClass对匿名内部类也有效*/public static void main(String[] args) {Class<?> enclosingClass = InnerClass.class.getEnclosingClass();System.out.println(enclosingClass.getName());Class<?> declaringClass = InnerClass.class.getDeclaringClass();System.out.println(declaringClass.getName());//注意:GetEnclosingClass获取的是直接定义该类的外部类Class实例、这点和getDeclaringClass一致Class<?> enclosingClass1 = InnerClass.InnerInnerClass.class.getEnclosingClass();System.out.println(enclosingClass1.getName());Class<?> declaringClass1 = InnerClass.InnerInnerClass.class.getDeclaringClass();System.out.println(declaringClass1.getName());//针对匿名内部类的测试DifferentBetweenClassGetEnclosingClassAndDeclaringClass s = new DifferentBetweenClassGetEnclosingClassAndDeclaringClass();HelloService inst = s.getHelloService();inst.sayHello();}private class InnerClass {private class InnerInnerClass {}}public interface HelloService {void sayHello();}public static class DifferentBetweenClassGetEnclosingClassAndDeclaringClass {HelloService getHelloService() {//匿名内部类return new HelloService() {@Overridepublic void sayHello() {System.out.println(this.getClass().getEnclosingClass());System.out.println(this.getClass().getDeclaringClass());}};}}
}

Class.getEnclosingClass 和 Class.getDeclaringClass相关推荐

  1. Class类中的getEnclosing*、getDeclared*与getDeclaringClass的区别

    一.getEnclosing*  当前类在--中闭合  Class<?> getEnclosingClass()           返回底层类的立即封闭类.  Constructor&l ...

  2. java is not a enclosing class_Java Class getEnclosingClass()用法及代码示例

    java.lang.Class类的getEnclosingClass()方法用于获取该类的封闭类.如果该类是本地类或在该类中声明的匿名类,则该方法返回该类的封闭类.否则,此方法返回null. 用法: ...

  3. java 根据类名示例化类_Java类类getEnclosingClass()方法及示例

    java 根据类名示例化类 类的类getEnclosingClass()方法 (Class class getEnclosingClass() method) getEnclosingClass() ...

  4. Java类类的getDeclaringClass()方法和示例

    类的类getDeclaringClass()方法 (Class class getDeclaringClass() method) getDeclaringClass() method is avai ...

  5. Java枚举getDeclaringClass()方法与示例

    枚举类getDeclaringClass()方法 (Enum Class getDeclaringClass() method) getDeclaringClass() method is avail ...

  6. java的constructor怎么用,Java Constructor getDeclaringClass()用法及代码示例

    构造函数类提供有关一个类的单个构造函数的信息,并且还提供对那个构造函数的访问. 的getDeclaringClass()的方法java.lang.reflect.Constructor用于返回表示声明 ...

  7. java enum in class_Java 8需要一个转换,而Java 7没有 – enum.getClass/getDeclaringClass

    我意识到Java 8仍然在测试版,但是这一点让我很奇怪: public class Fields> { public Fields(Set columns) { // A sample colu ...

  8. 深入理解Java类型信息(Class对象)与反射机制

    关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解Java并发之synchronize ...

  9. Spring注解编程基石(四)

    目录 AnnotationsScanner 扫描方法 扫描source为Class方法 扫描source为Method方法 辅助方法 MergedAnnotationSelector MergedAn ...

最新文章

  1. 黎曼曲面Riemann Surface
  2. 【怎样写代码】工厂三兄弟之抽象工厂模式(五):扩展案例I
  3. Oracle 如何设置shared pool 和sga大细, 应该设置几大
  4. 软件工程师必备的24个软技能
  5. 从硬件到框架,30+巨头参与的AI基准竞争结果公布(第一回合)
  6. transform与fit_transform的区别
  7. Dajngo-Xadmin 修改菜单摆放排序
  8. javascript内存泄露
  9. 懒惰是人类进步的动力,勤奋是实现偷懒的途径
  10. shell 脚本中常用的列表
  11. RDLC报表横向放纸不能横向打印问题解决
  12. 日常计算机网络基础练习题(每天进步一点点系列)
  13. unity编程实践-牧师与魔鬼动作分离版
  14. php nl2p,PHP函数nl2br()与自定义函数nl2p()换行用法分析,nl2brnl2p_PHP教程
  15. 操作系统作业:向内核中添加一个系统调用
  16. Ubuntu12更新重启之后,只在左上角出现一闪一闪的小横杠
  17. 如何隐藏 MacBook Pro 上奇怪的刘海
  18. ajax牙椅aj11,AJ11拆解图 AJ11配置拆解测评
  19. java 1加到100
  20. 在服务器centos 6.4上面安装nginx支持hls和Feng支持rtsp流协议

热门文章

  1. 25款最好的数据恢复软件测评分析与对比
  2. gc overhead limit exceeded 解决办法和问题追究
  3. 长沙含浦大道与云栖_集团动态
  4. 定点爆破丨千锋老朱最全Springcloud-alibaba课程强势来袭
  5. sharding-jdbc分库分表
  6. ManageCategories.cs
  7. 120项优化: 超级爬虫Hawk 2.0重磅发布!
  8. 全球顶尖公司的烧脑面试题
  9. 小白笔记---坐标系、坐标参照系、坐标变换、投影变换
  10. 2014----微软校招