实体类: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. Android之ActionBar、Tabs、Fragment、ViewPager实现标签页切换并缓存页面

    感觉 Android 到处都是坑,每个地方都要把人折腾半天. 今天来简单说说 Android之ActionBar.Tabs.Fragment.ViewPager 实现标签页切换并缓存页面 关于他们的介 ...

  2. 辽宁OI2016夏令营模拟T2-road

    最短路(road.pas/c/cpp)题目大意有一个点数为 n,边数为 m 的无向图,点的编号为 1 到 n.边的权值均为非负数.现在请你求出从点 1 到点 n 的最短路径条数,若有无限条则输出-1, ...

  3. 用VMware vSphere Client客户端登陆vsphere5提示错误

    客户端无法向服务器发送完整请求(基础连接已关闭:发送时发生错误) 可能原因:5.1以上的vsphere client都不支持winxp

  4. luci编译错误

    make[3]: Entering directory '/home/hbg/test1214/package/feeds/luci/luci'*** Repository layout change ...

  5. android service文章转载

    郑重转载几篇网络文章: Android Service使用 http://www.cnblogs.com/linlf03/archive/2013/06/14/3135273.html Android ...

  6. linux命令英文缩写的含义(方便记忆)

    命令缩写: ls:list(列出目录内容) cd:Change Directory(改变目录) su:switch user 切换用户 rpm:redhat package manager 红帽子打包 ...

  7. The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

    JDK版本的问题. 解决方法: 原来jdk1.8不向下兼容,用回1.6的就可以了. 下图有三个jdk,前两个自己装的,第三个MyEclipse自带的.

  8. 查看Android下生成的.db数据库

    1.在cmd中找到sdk中的platform-tools文件夹. 2.输入adb shell命令. 3.再输入sqlite3 /data/data/com.svs.db/databases/svs.d ...

  9. Linux RSS/RPS/RFS/XPS对比

    RSS适合于多队列网卡,把不同的流分散的不同的网卡多列中,至于网卡队列由哪个cpu处理还需要绑定网卡队列中断与cpu RPS:适合于单队列网卡或者虚拟网卡,把该网卡上的数据流让多个cpu处理 RFS: ...

  10. mongoDB7--游标

    之前我们学习了"增删改查"四中语法和查询表达式的深入学习,我们已经掌握了一定的操作mongodb数据的能力,那么接下来我们就要考虑我们的操作的效率问题了.(1)游标介绍如果我们查询 ...