反射获取类结构信息

代码如下:

 1 package com.sina.demo;
 2 interface IMessageService{
 3     public void send();
 4 }
 5 interface IChannel{
 6     public boolean connect();
 7 }
 8 abstract class AbstractBase{}
 9 class Mail extends AbstractBase implements IMessageService,IChannel{
10     @Override
11     public boolean connect() {
12         return true;
13     }
14     @Override
15     public void send() {
16         if(this.connect()) {
17             System.out.println("【信息发送】www.sina.com.cn");
18         }
19     }
20 }
21 public class JavaReflectDemo {
22     public static void main(String[] args) {
23         Class<?> cls = Mail.class;
24         Package pkg = cls.getPackage();
25         System.out.println("包名称:"+pkg.getName());
26         Class<?> parent = cls.getSuperclass();
27         System.out.println("父类名称:"+parent.getName());
28         Class<?> clazz[] = cls.getInterfaces();
29         for(Class<?> temp:clazz) {
30             System.out.println("父接口名称:"+temp);
31         }
32     }
33 }

运行结果:

包名称:com.sina.demo
父类名称:com.sina.demo.AbstractBase
父接口名称:interface com.sina.demo.IMessageService
父接口名称:interface com.sina.demo.IChannel

原文地址:https://www.cnblogs.com/sunzhongyu008/p/11218706.html

时间: 2024-08-02 18:04:53

反射获取类结构信息的相关文章

c#反射机制学习和利用反射获取类型信息

反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的名称.限定符和参数等.有了反射,即可对每一个类型了如指掌.如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道 1..NET可执行应用程序结构 程序代码在编译后生成可执行的应用,我们首先要了解这种可执行应用程序的结构. 应用程序结构分为应用程序域—程序集—模块—类型—成员几

通过反射获取泛型信息

1 package com.coscon.reflectionTest; 2 3 import java.lang.reflect.Method; 4 import java.lang.reflect.ParameterizedType; 5 import java.lang.reflect.Type; 6 import java.util.List; 7 import java.util.Map; 8 9 //用过反射获取泛型信息 10 public class ReflectionForGe

根据反射获取属性信息并创建DataTable

查看了一些方法之后,做了一些总结,此方法适用于传进的参数是List<T>类型, 但事先并不知道T的类型,T可以是自定义类型. 1 public DataTable CreateDataTable(Object o) 2 { 3 DataTable dt = new DataTable(); 4 //DataColumn yearColumn = new DataColumn("Year", System.Type.GetType("System.String&qu

通过反射获取字段信息

今天写一个参照,由于参照的数量太多,几乎每个单据都会有一个参照,因此我想抽象出一部分基本属性作为基类来继承, 我这么做了,但是数据没出来,看了源代码,发现了原因: 如截图所示,该代码只实现了当前类的属性的读取,但是没有读取父类的属性,提供方法如下来获取所以父类属性 很好理解,不断读取父类,直到遇到java.lang.object,我们就认为我们读取完了所有自己的父类的属性,当然,你是用了这个方法 注定只能是object的子类,其余的情况可以分开讨论,比如加一个接口来区分一下,然后分流读取即可

自定义注解以及通过反射获取注解

一.自定义的注解 @Target({ElementType.METHOD,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface jdbcConfig { String ip(); int port() default 3306; String database(); String encoding(); String username(); String pa

反射之获取方法信息

本文接上文"反射之Class类的使用",以编写一个用来获取类的信息(成员函数.成员变量)的工具类来讲解"反射之获取方法信息" 1.新建工具类,命名ClassUtil,输入一个对象(Object),输出该对象的基础信息方法(printClassMessage) 1 /** 2 * 打印类的信息,成员函数.成员变量 3 * Created by Format on 2017/6/3. 4 */ 5 public class ClassUtil { 6 7 } 2.获取类

获取调用者Class和method、反射获取get方法、获取注解信息

调用者Class 及 method StackTraceElement stacks[] = Thread.currentThread().getStackTrace(); for (StackTraceElement stack : stacks) { String className = stack.getClassName(); if (className.contains("com.upsoft") && className.contains("Con

Java反射机制能够获取的信息,与应用

一.什么是Java反射机制? [1]反射机制是在运行状态中,对于任何一个类,都能够知道这个类的所有属性和方法: [2]对于任意一个对象,都能够调用它的任意一个属性和方法: 像这种动态获取类的信息以及动态调用对象的方法的骚操作称为java语言的反射机制. 二.Java反射机制能够获取及操作哪些信息? [1]获取类的包名 + 类名 1 package com.zyy.test.reflect; 2 3 public class TestReflect { 4 5 public static void

获取APP的类结构信息

之前介绍了怎么操作越狱的iOS设备(以下简称为手机),但简单操作手机并不是目标,小程的目标是手机上特定的APP,比如微信.淘宝.QQ音乐等等,因为小程可以从这些APP上拿到一些有用的信息或资源--比如,"微信的那个页面是用什么控件来布局的?"."QQ音乐的歌手头像,能批量地拿到吗?",等等. 很明显,如果你知道目标APP的所有类的声明,你就可能直接观察到,或者推导到一些有用的信息. 实际上,把目标APP的类信息拿到,是至关重要的一步,因为这一步的成功让你有了分析的资