Java 反射经常用法演示样例
<pre name="code" class="java">import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method; class Point{
int x;
private int y; public Point(){
x = 1;
y = 2;
} public void setX(int x) {
this.x = x;
} public void setY(int y) {
this.y = y;
} private Point(int x){
this();
this.x = x;
} public Point(int x, int y) {
super();
this.x = x;
this.y = y;
} public void printPoint(){
System.out.println("x = " + x + " , y = " + y);
}
} public class ReflectTest2 { public static void main(String[] args) throws Exception { //使用第一种方法创建对象
Class cls1 = Class.forName("Point");
Constructor con1 = cls1.getConstructor(int.class,int.class);
Point p1 = (Point) con1.newInstance(5,6);
p1.printPoint(); //使用另外一种方法创建对象
Class cls2 = Point.class;
Point p2 = (Point) cls2.newInstance();//无參构造函数
p2.printPoint(); //使用第三种方法创建对象
Class cls3 = p1.getClass();
//使用p1对象的setX方法将x值改动为10
Method m1 = cls3.getMethod("setX", int.class);
m1.invoke(p1, 10);
p1.printPoint(); /*
* Note:
* getDeclaredConstructor能够返回指定參数的构造函数,
* 而getConstructor仅仅能放回指定參数的public的构造函数
* */
Constructor con2 = cls3.getDeclaredConstructor(int.class);
//訪问私有变量、函数须要设置accessible
con2.setAccessible(true);
Point p4 = (Point) con2.newInstance(3);
p4.printPoint(); //Field f1 = cls3.getField("y");//error
Field f1 = cls3.getDeclaredField("y");
f1.setAccessible(true);
//获取p1的y值
System.out.println(f1.get(p1));
} }
Java 反射经常用法演示样例的更多相关文章
- java 状态模式 解说演示样例代码
package org.rui.pattern; import junit.framework.*; /** * 为了使同一个方法调用能够产生不同的行为,State 模式在代理(surrogate)的 ...
- delphi webbrowser 经常用法演示样例
var Form : IHTMLFormElement ; D:IHTMLDocument2 ; begin with WebBrowser1 do begin D := Document as IH ...
- java 覆盖hashCode()深入探讨 代码演示样例
java 翻盖hashCode()深入探讨 代码演示样例 package org.rui.collection2.hashcode; /** * 覆盖hashcode * 设计HashCode时最重要 ...
- java并行调度框架封装及演示样例
參考资料: 阿里巴巴开源项目 CobarClient 源代码实现. 分享作者:闫建忠 分享时间:2014年5月7日 ---------------------------------------- ...
- Java连接redis的使用演示样例
Java连接redis的使用演示样例 Redis是开源的key-value存储工具,redis通经常使用来存储结构化的数据,由于redis的key能够包括String.hash.listset和sor ...
- java 泛型深入之Set有用工具 各种集合泛型深入使用演示样例,匿名内部类、内部类应用于泛型探讨
java 泛型深入之Set有用工具 各种集合泛型深入使用演示样例,匿名内部类.内部类应用于泛型探讨 //Sets.java package org.rui.generics.set; import j ...
- java 线程、线程池基本应用演示样例代码回想
java 线程.线程池基本应用演示样例代码回想 package org.rui.thread; /** * 定义任务 * * @author lenovo * */ public class Lift ...
- ArcSDE SDK For Java二次开发介绍、演示样例
在一个工作中,遇到了须要java后台来查询ArcGIS 中用到的Oracle数据库空间数据,因为对ArcGIS空间数据首次接触,仅仅知道Oracle能够使用ST_GEOMETRY字段存储,例如以下图 ...
- JAVA简单Swing图形界面应用演示样例
JAVA简单Swing图形界面应用演示样例 package org.rui.hello; import javax.swing.JFrame; /** * 简单的swing窗体 * @author l ...
随机推荐
- C# 将string 转换为二维码图片,然后转为base64字符串编码 。
需在nuget 添加此dll ///content字符串 public static string GetQRCode(string content, int moduleSize = 9) { va ...
- 【BZOJ4383】[POI2015]pustynia
题意: 建议Alt+F4百度一下 题解: 差分约束+线段树优化建图,直接按照拓扑序跑就行了 代码: #include<iostream> #include<cstring> # ...
- BZOJ 1050 [HAOI2006]旅行comf(最小生成树)
题意 第一行包含两个正整数,N和M.下来的M行每行包含三个正整数:x,y和v.表示景点x到景点y之间有一条双向公路 ,车辆必须以速度v在该公路上行驶.最后一行包含两个正整数s,t,表示想知道从景点s到 ...
- 电源管理ACPI、及APM、GNU/Linux系统下的相应命令使用
/********************************************************************* * Author : Samson * Date ...
- spark一些入门资料
spark一些入门资料 A Scala Tutorial for Java Programmers http://docs.scala-lang.org/tutorials/scala-for-jav ...
- Codeforces Round #271 (Div. 2) 解题报告
题目地址:http://codeforces.com/contest/474 A题:Keyboard 模拟水题. 代码例如以下: #include <iostream> #include ...
- storm trident function函数
package cn.crxy.trident; import java.util.List; import backtype.storm.Config; import backtype.storm. ...
- BootStrap有用代码片段(持续总结)
> 如题.持续总结自己在使用BootStrap中遇到的问题.并记录解决方法.希望能帮到须要的小伙伴 1.bootstrap上下布局.顶部固定下部填充 应用场景:经典上下布局中,顶部导航条固定,下 ...
- bzoj2127: happiness(双倍经验最小割)
2127: happiness 题目:传送门 题解: 双倍经验美滋滋~ 请看蒟蒻以前写的渣题解...bzoj3894 表示做完自己就最小割了... 代码(直接改的...菜啊): #include< ...
- zzulioj--1841--so easy!麻麻再也不用担心我的数学了!(数学水题)
1841: so easy!麻麻再也不用担心我的数学了! Time Limit: 1 Sec Memory Limit: 128 MB Submit: 27 Solved: 15 SubmitSt ...