java反射技术实例
java反射技术实例
1. [代码][Java]代码
package com.gufengxiachen.java.reflectiontest;
public class Person {
private String name;
private int age;
private static int total;
public Person(){
super();
total++;
}
public Person(String name,int age){
super();
this.name=name;
this.age=age;
total++;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public static int getTotal() {
return total;
}
public static void setTotal(int total) {
Person.total = total;
}jQuery特效
@Override
public String toString() {
// TODO 自动生成方法存根
return "Name:"+name+"\tAge:"+age;
}
}
2. [代码][Java]代码
package com.gufengxiachen.java.reflectiontest;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Scanner;
public class TestReflection01 {
public static void main(String[] args) {
System.out.println("请输入类型名称:");
Scanner scan=new Scanner(System.in);
String className=scan.next();
System.out.println("当前类型:"+className);
try {
Class c=Class.forName(className);
Field[] fs=c.getDeclaredFields();
for(Field f:fs){
System.out.println("--------------------------");
System.out.println("属性:"+f.toString());
System.out.println("\t数据类型:"+f.getType());
System.out.println("\t属性名:"+f.getName());
int mod=f.getModifiers();
System.out.println("\t属性修饰符:"+Modifier.toString(mod)+Modifier.isPrivate(mod));
}
Method[] ms=c.getDeclaredMethods();
for(Method m:ms){
System.out.println("...........................................");
System.out.println("方法:"+m.toString());
System.out.println("\t方法名:"+m.getName());
int mod=m.getModifiers();
System.out.println("\t方法修饰符:"+Modifier.toString(mod));
System.out.println("\t方法参数列表:");
Class pts[]=m.getParameterTypes();
for(int i=0;i<pts.length;i++){
Class class1=pts[i];
if(i!=0)
System.out.println(",");
System.out.println(class1);
}
System.out.println();
System.out.println("\t返回值类型:"+m.getReturnType());
}http://www.huiyi8.com/jiaoben/
Constructor[] cs=c.getDeclaredConstructors();
for(Constructor con:cs){
System.out.println("******************************************");
System.out.println("构造方法:"+con.toString());
System.out.println("方法名:"+con.getName());
int mod=con.getModifiers();
System.out.println("\t方法修饰符:"+Modifier.toString(mod));
System.out.print("\t方法参数列表:");
Class pts[]=con.getParameterTypes();
for(int i=0;i<pts.length;i++){
Class class1=pts[i];
if(i!=0)
System.out.print(",");
System.out.println(class1);
}
System.out.println();
}
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
Class superClass=c.getSuperclass();
System.out.println("当前类的父类:"+superClass.toString());
System.out.println("##########################################");
Class[] interfaces=c.getInterfaces();
System.out.print("当前类所实现接口:");
for(Class class1:interfaces){
System.out.println(class1.toString()+"\t");
}
System.out.println("\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
Package p=c.getPackage();
System.out.println("当前类所在包:"+p.toString());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
3. [代码][Java]代码 跳至 [1] [2] [3] [全屏预览]
package com.gufengxiachen.java.reflectiontest;
public class User {
public String name;
public int age;
public static int total=100;
public User() {
// TODO 自动生成构造函数存根
super();
}
public User(String name,int age){
super();
this.name=name;
this.age=age;
}
public void setAll(String name,int age){
this.name=name;
this.age=age;
}
public static void showTotal(){
System.out.println("int static method showTotal,total= "+total);
}
@Override
public String toString() {
// TODO 自动生成方法存根
return "用户名:"+name+"\t密码:"+age;
}
}
java反射技术实例的更多相关文章
- java 反射技术
什么是反射?反射就是将字节码中的各种成分映射到相应的java类中来,java反射技术自JDK1.1以来就出现了,目前大多数流行的框架都采用了这种技术,可见其重要性,这篇文章将详细介绍我对java反射技 ...
- Android 插件化开发(一):Java 反射技术介绍
写在前面:学习插件化开发推荐书籍<Android 插件化开发指南>,本系列博客所整理知识部分内容出自此书. 在之前的项目架构的博文中,我们提到了项目插件化架构,提到插件化架构不得不提的到J ...
- Android中Java反射技术的使用示例
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Metho ...
- java反射技术主要实现类有哪些,作用分别是什么
Java反射技术主要实现类有哪些,作用分别是什么? 在JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.reflect包中 1)Class类:代表一个类 2)Field 类 ...
- Java中类加载和反射技术实例
我们知道一个对象在运行时有两种类型,一个是编译类型,一个是运行时类型.在程序运行时,往往是需要发现类和对象的真实的信息的.那么如何获的这种信息呢? 其一,如果我们在编译和运行时都知道类型的具体信息,这 ...
- Android系统原理与源码分析(1):利用Java反射技术阻止通过按钮关闭对话框
原文出处:博主宇宙的极客http://www.cnblogs.com/nokiaguy/archive/2010/07/27/1786482.html 众所周知,AlertDialog类用于显示对话框 ...
- java 反射的实例
JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制 ...
- Java反射的实例
JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法; 这种动态获取的信息以及动态调用对象的方法的功能称为ja ...
- 由浅入深理解----java反射技术
java反射机制详解 java反射机制是在运行状态下,对任意一个类可以获取该类的属性和方法,对任意一个对象可以调用其属性和方法.这种动态的获取信息和调用对象的方法的功能称为java的反射机制 clas ...
随机推荐
- BZOJ题目(持续更新)
bzoj1009:kmp想法+递推+矩阵快速幂.很好的想法,考虑用长串去kmp匹配短串,dp[i][j]表示匹配指针分别指在i.j位置时候,前i位母字符串一共有多少种可能性,那么dp[i][j]=Σd ...
- OSI-ISO 七层协议通信模型
- Eclipse安装Spring工具套件
前言: 安装spring工具套件是为了更快捷的使用spring,但是我觉得既然已经有了maven,工具套件其实不那么重要. 而且装好后我发觉没什么两样,只是新建bean文件时比较爽一点. 安装步骤: ...
- HashMap 和 Hashtable 的同和不同
综述 可以直接根据 hashcode 值判断两个对象是否相等吗?肯定是不可以的,因为不同的对象可能会生成相同的 hashcode 值.虽然不能根据 hashcode 值判断两个对象是否相等,但是可以直 ...
- 解决js输出汉字乱码的问题
近期做安卓开发.安卓client调用server页面,可是server编码为gbk,安卓编码为utf-8.导致js输出内容报错,前期的做法是调整js文件编码.可是会生成两个版本号,非常不方便,最后找到 ...
- Pearson product-moment correlation coefficient in java(java的简单相关系数算法)
一.什么是Pearson product-moment correlation coefficient(简单相关系数)? 相关表和相关图可反映两个变量之间的相互关系及其相关方向,但无法确切地表明两个变 ...
- C++ ADO 连接 mysql
1.安装mysql-5.0.22-win32,mysql-connector-odbc-5.1.12-win32.msi 然后:开始菜单->设置->控制面板->管理工具-> ...
- 深度探究apk安装过程
一.先验知识 0.PcakageaManagerService版本号变化 1.概述 2.PackageManagerService服务启动流程 3. PackageManagerService入口 二 ...
- mysql 加密解密函数
http://blog.csdn.net/wh62592855/article/details/6777753 mysql下的加密函数有如下几个 PASSWORD():创建一个经过加密的密码字符串,适 ...
- 教你使用 Reflexil 反编译.NET
简介 反编译的方式有很多种,其实最靠谱的还是IL反编译. 如果不懂IL可以尝试我这边文章入门:http://www.wxzzz.com/278.html 不过我下面要说的不是IL这种底层的代码反编译, ...