实体类:User
package com.reflect.model; public class User{ private User(int id, String username, String password) {
super();
this.id = id;
this.username = username;
this.password = password;
System.out.println("three");
}
public User(int id) {
super();
this.id = id;
System.out.println("one");
}
public User() {
super();
System.out.println("zero");
}
private int id;
private String username;
private String password;
}

测试类:Test

package com.reflect.test;

import java.lang.reflect.Array;
import java.util.Properties; public class Test { public static void main(String[] args) { try { /*Class<?> superUserClass = userClass.getSuperclass();
Class<?>[] infs = userClass.getInterfaces();
//System.out.println(infs.length);
//Constructor[] Constructors = userClass.getConstructors();
Constructor<?>[] constructors = userClass.getDeclaredConstructors();
//System.out.println(constructors.length);
for(Constructor<?> constructor : constructors) {
int len = constructor.getParameterTypes().length;
if(!constructor.isAccessible()) {
constructor.setAccessible(true);
}
System.out.println(Modifier.toString(constructor.getModifiers()));
Class<?>[] typeClass = constructor.getParameterTypes();
switch(len) {
case 0 :
constructor.newInstance();
break;
case 1 : System.out.println(Modifier.toString(typeClass[0].getModifiers()));
constructor.newInstance(10);
break;
case 3 : System.out.println(Modifier.toString(typeClass[0].getModifiers()));
constructor.newInstance(10,"abc", "abc123");
break;
}
}*/ /*
//通过反射操作方法
Field[] fields = userClass.getDeclaredFields();
String setter = "set" + fields[1].getName().substring(0, 1).toUpperCase() + fields[1].getName().substring(1);
String getter = "get" + fields[1].getName().substring(0, 1).toUpperCase() + fields[1].getName().substring(1);
System.out.println(setter); Object user = userClass.newInstance(); Method method = userClass.getMethod(setter, String.class);
method.invoke(user, "10"); Method methodG = userClass.getMethod(getter);
Object obj = methodG.invoke(user);
System.out.println(obj);*/ /*//通过反射操作属性
Class<?> userClass = Class.forName("com.reflect.model.User");
Object user = userClass.newInstance();
Field[] fields = userClass.getDeclaredFields();
Field field = fields[0];
field.setAccessible(true);
field.set(user, 1);
System.out.println(field.get(user));
*/ /*//复制并扩展数组
int[] temp = {1,2,3,4,5,6,7,8,9};//原数组
int[] dest = (int[])Test.extendArray(temp, 200);//调用extendArray()方法扩展数组
for(int i = 0; i < dest.length; i++) {
System.out.println(dest[i] + "," + dest.length);
} //System.getenv()输出环境变量
Map<String, String> envs = System.getenv();
Iterator<String> ites = envs.keySet().iterator();
while(ites.hasNext()) {
String val = envs.get(ites.next());
}
List<Integer> ints = new ArrayList<Integer>();
*/ /*File f = new File("F:/a.txt");
PrintStream ps = new PrintStream(f);
System.setOut(ps);
Scanner scan = new Scanner(System.in);
for(int i = 0; i < 10; i++) {
System.out.println(i);
}*/
Properties pro = new Properties();
pro.setProperty("JAVA_HOME", "D:/java");
System.setProperties(pro); } catch (Exception e) {
e.printStackTrace();
}
} private static Object extendArray(Object obj, int length) {
Class<?> arrayType = obj.getClass().getComponentType();
Object arrayInstance = Array.newInstance(arrayType, length);
int objLength = Array.getLength(obj);
System.arraycopy(obj, 0, arrayInstance, 0, objLength);
return arrayInstance;
} }

Java 反射实例的更多相关文章

  1. java反射 实例

    首先介绍几个概念: 1.Java反射的概念 反射含义:可以获取正在运行的Java对象. 2.Java反射的功能 1)可以判断运行时对象所属的类 2)可以判断运行时对象所具有的成员变量和方法 3)通过反 ...

  2. Java 正则表达式实例操作

    Regular Expression正则表达式,简称RegExp,常规通用的表达式,在多个开发语言中都有它的实现,可以通过正则表达式来快速的检索.匹配.查找.替换字符串中的文本. 简单实例 匹配网址 ...

  3. Java反射机制可以动态修改实例中final修饰的成员变量吗?

    问题:Java反射机制可以动态修改实例中final修饰的成员变量吗? 回答是分两种情况的. 1. 当final修饰的成员变量在定义的时候就初始化了值,那么java反射机制就已经不能动态修改它的值了. ...

  4. java 反射的实例

    JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制 ...

  5. java反射机制简单实例

    目录 Java反射 简单实例 @(目录) Java反射 Java语言允许通过程序化的方式间接对Class进行操作.Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通 ...

  6. java反射技术实例

    java反射技术实例​1. [代码][Java]代码     package com.gufengxiachen.java.reflectiontest; public class Person {p ...

  7. Java反射学习总结四(动态代理使用实例和内部原理解析)

    通过上一篇文章介绍的静态代理Java反射学习总结三(静态代理)中,大家可以发现在静态代理中每一个代理类只能为一个接口服务,这样一来必然会产生过多的代理,而且对于每个实例,如果需要添加不同代理就要去添加 ...

  8. Java知识总结:Java反射机制(用实例理解)

    概念理解: 反射是指一类应用,它们能够自描述和自控制.也就是说,这类应用通过采用某种机制来 实现对自己行为的描述( self-representation )和检测( examination) ,并能 ...

  9. Java反射的实例

    JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;         这种动态获取的信息以及动态调用对象的方法的功能称为ja ...

随机推荐

  1. Black Jack

    Black Jack 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5602 记忆化搜索 用dp[0][i][j]记录当player为i,banker为 ...

  2. POJ 1082 Calendar Game(找规律博弈)

    传送门 以下复制自此处:http://www.xuebuyuan.com/2028180.html 博弈论题目可以用寻找必败状态的方法解决. 第一个必败状态是2001.11.04.由此可以推出其他任何 ...

  3. JS的一些常见验证代码

    1//檢查空串  2function isEmpty(str){  3 if((str == null)||(str.length == 0)) return (true);  4 else retu ...

  4. openwrt生成备份文件

    生成备份文件时所使用的脚本中调用的命令为sysgrade local image_tmp   = "/tmp/firmware.img" local backup_cmd  = & ...

  5. tomcat 7 启动超时设置。。。实在太隐蔽了

    打开Tomcat,选择 Window->Show View->Servers,在主窗口下的窗口中的Servers标签栏鼠标左键双击tomcat服务器名,例如 Tomcat v7.0 Ser ...

  6. python 列表、字典的方法

    # 列表最后新增元素 li = [11, 22, 33] print(li) li.append(44) # 对原列表最后增加一个元素 print(li) 执行如下: [11, 22, 33][11, ...

  7. 利用POI获取Excel中图片和图片位置

    利用POI获取Excel中图片和图片位置(支持excel2003or2007多sheet) 转自:http://blog.csdn.net/delongcpp/article/details/8833 ...

  8. SQL_where条件的优化

    原则,多数数据库都是从 左到右的顺序处理条件,把能过滤更多数据的条件放在前面,过滤少的条件放后面 SQL1: select * from employee             where sala ...

  9. E - 小晴天老师系列——我有一个数列!

    E - 小晴天老师系列——我有一个数列! Time Limit: 20000/10000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/O ...

  10. li浮动时ul高度为0,解决ul自适应高度的几种方法

    网址:http://www.gxchina.com/edu/11208.html 1.给ul元素设置高度height最直接的办法是给ul元素设置一个高度,即ul标签添加height属性,代码如下: u ...