根据

http://www.iteye.com/topic/137944

文档进行学习

代码如下:

package reflectTest;

import java.lang.reflect.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*; class A{ } class B extends A{ } class C extends B{ } class TestClass extends Object implements ActionListener {
private int a = 3;
public Integer b = 4;
public TestClass(){}
public TestClass(int id,String name){}
public void Abc(int id,String name){}
public void ActionPerformed(ActionEvent e){}
} public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
TestClass tc = new TestClass();
Class temp = tc.getClass();
//==============================================
try{
System.out.println("反射类中所有公有的属性");
Field[] fb = temp.getFields();
for(int i=0;i < fb.length;i++)
{
Class cl = fb[i].getType();
System.out.println("fb: "+cl);
} System.out.println("反射类中所有的属性");
Field[] fa = temp.getDeclaredFields();
for(int i = 0;i < fa.length;i++)
{
Class cl = fa[i].getType();
System.out.println("fa: "+cl);
} System.out.println("反射类中私有属性的值");
Field f = temp.getDeclaredField("a");
f.setAccessible(true);
Integer i = (Integer)f.get(tc);
System.out.println(i);
//===============================
String className = temp.getName();
Constructor[] constructs = temp.getConstructors();
for(int k = 0;k < constructs.length;k++)
{
Class[] Parametertypes = constructs[k].getParameterTypes();
System.out.print(className + "(");
for(int j =0 ;j < Parametertypes.length;j++)
{
System.out.print(Parametertypes[j].getName()+" ");
}
System.out.println(")");
}
//==================================================================
Class[] interfaces = temp.getInterfaces();
for(int j = 0;j<interfaces.length;j++)
{
System.out.println(interfaces[j].getName());
}
Class superClass = temp.getSuperclass();
System.out.println(superClass.getName());
//=================================================================
C c = new C();
Class t = c.getClass();
Class superClass1 = t.getSuperclass();
System.out.println(c);
System.out.println(c.getClass());
System.out.println(c.getClass().getSuperclass());
System.out.println(c.getClass().getSuperclass().getSuperclass()); }catch(Exception e)
{
System.out.println(e);
}
} }

运行结果如下:

反射类中所有公有的属性
fb: class java.lang.Integer
反射类中所有的属性
fa: int
fa: class java.lang.Integer
反射类中私有属性的值
3
reflectTest.TestClass()
reflectTest.TestClass(int java.lang.String )
java.awt.event.ActionListener
java.lang.Object
reflectTest.C@70dea4e
class reflectTest.C
class reflectTest.B
class reflectTest.A

java反射机制学习代码的更多相关文章

  1. JAVA反射机制—学习总结

    最近收到很多关于Java反射机制的问题留言,其实Java反射机制技术方面没有太多难点,或许是大家在学习过程中遗漏了细小知识点,导致一些问题无法彻底理解,现在我们简单的总结一下,加深印象.什么是反射机制 ...

  2. Java反射机制——学习总结

    前几天上REST课,因为涉及到Java的反射机制,之前看过一直没有用过,有些遗忘了,周末找了些资料来重新学习,现在总结一下,加深印象. 什么是反射机制? 参考百度百科对java反射机制的定义: “JA ...

  3. Java反射机制学习与研究

    Java反射机制:可以获取正在运行时的Java对象. 1.判断运行时对象对象所属的类. 2.判断运行时对象所具有的成员变量和方法. 3.还可以调用到private方法,改变private变量的值. S ...

  4. Java反射机制学习

    Java 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”. 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答 ...

  5. JAVA反射机制学习随笔

    JAVA反射机制是用于在运行时动态的获取类的信息或者方法,属性,也可以用来动态的生成类,由于所有类都是CLASS的子类,我们可以用一个CLASS类的实例来实例化各种类 例如: Class<?&g ...

  6. java反射机制学习笔记

    内容引用自:https://www.cnblogs.com/wkrbky/p/6201098.html https://www.cnblogs.com/xumBlog/p/8882489.html,本 ...

  7. java反射机制学习小结

    之前一直对java的反射机制理解得很模糊,今天因为学习spring,所以花了些时间总算把它理顺了,记录一下 另外,推荐读读这篇文章,写的挺好的http://blog.csdn.net/woshixuy ...

  8. Java 反射机制学习资料

    Java反射——引言 Java反射——Class对象 Java反射——构造函数 Java反射——字段 Java反射——方法 Java反射——Getter和Setter Java反射——私有字段和私有方 ...

  9. Java反射机制的学习

    Java反射机制是Java语言被视为准动态语言的关键性质.Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调 ...

随机推荐

  1. [BZOJ5312]冒险

    bzoj CSAcademy description 一个序列\(a_i\),支持区间与一个数,区间或一个数,求区间最大值. \(n,m\le2\times10^5\) sol 线段树每个节点上维护区 ...

  2. QLoo graphql engine 学习二 基本试用(kubernetes)

    已经测试过docker&& docker-compose 的运行模式,下面测试下kubernetes的运行模式 kubernetes 我使用docker for mac qloo 安装 ...

  3. Minio Bucket 通知试用&&说明

    kafka 安装 docker run -p 2181:2181 -p 9092:9092 \ --name kafka --rm \ --env ADVERTISED_HOST=HOSTIP \ - ...

  4. RabbitMq + Spring 实现ACK机制

    概念性解读(Ack的灵活) 首先啊,有的人不是太理解这个Ack是什么,讲的接地气一点,其实就是一个通知,怎么说呢,当我监听消费者,正常情况下,不会出异常,但是如果是出现了异常,甚至是没有获取的异常,那 ...

  5. Spring boot的@Configuration

    就在我惊艳于spring 4的AbstractAnnotationConfigDispatcherServletInitializer小巧简洁(如下)的时候却发现spring boot下面竟然无效. ...

  6. CCFlow SDK模式开发(有比较详细的代码,以服务的形式与ccflow数据库进行数据交互)

    http://www.cnblogs.com/s0611163/p/3963142.html 需求: 1.业务数据要保存在我们自己的数据库里     2.CCFlow有保存草稿的功能,但是领导要求每个 ...

  7. Jenkins 基础入门

    原文地址:Jenkins 基础入门 博客地址:http://www.extlight.com 一.前言 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作, ...

  8. C# Async&Await

    在async和await之前我们用Task来实现异步任务是这样做的: static Task<string> GetBaiduHtmlTAP() { //创建一个异步Task对象,内部封装 ...

  9. 详解Centos7 修改mysql指定用户的密码

    本文介绍了Centos7 修改mysql指定用户的密码,具体如下: 1.登陆mysql或者mariadb(两种任选其一) [root@localhost ~]# mysql -u root [root ...

  10. 微软开源rDSN分布式系统开发框架

    摘要:微软亚洲研究院系统组开发的分布式系统开发框架——Robust Distributed System Nucleus(rDSN)正式在GitHub平台开源.据悉,rDSN是一个旨在为广大分布式系统 ...