java反射型代码 java反射技术详解

用Eclipse写Java,反射的代码改写到哪里?~谢谢和普通Java程序一样
package com;
public class Foo {
private String userName;
public Foo() {
// TODO Auto-generated constructor stub
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void outPrint() {
System.out.println("outPrint");
}
}
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
// TODO Auto-generated method stub
Class? fooClass = Class.forName("com.Foo");
for (int i = 0; i(fooClass.getDeclaredMethods()).length; i++) {
System.out.println(fooClass.getMethods()[i]);
}
/*for (int i = 0; ifooClass.getDeclaredFields().length; i++) {
System.out.println(fooClass.getDeclaredFields()[i]);
}*/
for (Field field : fooClass.getDeclaredFields()) {
System.out.println(field);
}
Method out = fooClass.getDeclaredMethod("outPrint");
Method get = fooClass.getDeclaredMethod("getUserName");
Method set = fooClass.getDeclaredMethod("setUserName", String.class);
//Foo foo = new Foo();
Object foo = fooClass.newInstance();
out.invoke(foo);
set.invoke(foo, "BO");
System.out.println(get.invoke(foo));
}
java 通过反射 调用D盘中的类 这怎么实现?(要代码)//fileName是你java反射型代码的java文件路径
//先编译java文件为class文件
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileMgr = compiler.getStandardFileManager(null, null, null);
Iterable units = fileMgr.getJavaFileObjects(fileName);
CompilationTask t = compiler.getTask(null, fileMgr,null, null, null, units);
t.call();
fileMgr.close();
//反射来加载class文件java反射型代码 , 假设你java反射型代码的类为A,最好写个接口B , 让A 实现这个接口
B a = (B)Class.forName("包名.A");
java反射怎么实现的Java中反射有如下几种实现方式:
1、通过Class.forName()方法加载字符串,就可以得到该字符串做代表的Class对象 。
2、通过类名调用class属性得到该类的Class对象 。
例如:Class? clazz = String.class也可以得到String类的Class对象 。
3、调用实例的getClass()方法 。
例如:Date date = new Date();
Class? clazz = date.getClass();
通过上边的两句代码就可以得到date实例的Class对象 。
java反射提基本类型使用类字面常量或TYPE字段java反射型代码,例如:
Class myObjectClass= MyObject.class;(类字面常量不仅可以应用于普通的类 , 也可以应用
于接口、数组以及基本数据类型) , 这种方式不仅更简单,而且更安全,因为它在编译时就会受到检查 , 并且根除java反射型代码了对forName方法的调用 , 所以也更高效 , 建议使用“.class”的形式 。
Class c = Integer.TYPE;(TYPE是基本数据类型的包装类型的一个标准字段,它是一
个引用,指向对应的基本数据类型的Class对象),附表如下,两边等价:
boolean.class
Boolean.TYPE
char.class
Character.TYPE
byte.class
Byte.TYPE
short.class
【java反射型代码 java反射技术详解】Short.TYPE
int.class
Integer.TYPE
long.class
Long.TYPE
float.class
Float.TYPE
double.class
Double.TYPE
void.class
Void.TYPE
Java中的反射clazz构造方法是用的数组
你反射出来也得用数组啊

推荐阅读