package com.wanggc.reflection;
import java.lang.reflect.Method;
/**
* Java 反射练习。
*
* @author Wanggc
*/
public class ForNameTest {
/**
* 入口函数。
*
* @param args
* 参数
* @throws Exception
* 错误信息
*/
public static void main(String[] args) throws Exception {
// 获得Class
Class<?> cls = Class.forName(args[0]);
// 通过Class获得所对应对象的方法
Method[] methods = cls.getMethods();
// 输出每个方法名
for (Method method : methods) {
System.out.println(method);
}
}
}
public boolean java.lang.String.equals(java.lang.Object) public java.lang.String java.lang.String.toString() public int java.lang.String.hashCode() public int java.lang.String.compareTo(java.lang.String) public int java.lang.String.compareTo(java.lang.Object) public int java.lang.String.indexOf(int) public int java.lang.String.indexOf(int,int) public int java.lang.String.indexOf(java.lang.String) public int java.lang.String.indexOf(java.lang.String,int) public static java.lang.String java.lang.String.valueOf(int) public static java.lang.String java.lang.String.valueOf(char) public static java.lang.String java.lang.String.valueOf(boolean) public static java.lang.String java.lang.String.valueOf(float) public static java.lang.String java.lang.String.valueOf(char[],int,int) public static java.lang.String java.lang.String.valueOf(double) public static java.lang.String java.lang.String.valueOf(char[]) public static java.lang.String java.lang.String.valueOf(java.lang.Object) public static java.lang.String java.lang.String.valueOf(long) public char java.lang.String.charAt(int) public int java.lang.String.codePointAt(int) public int java.lang.String.codePointBefore(int) public int java.lang.String.codePointCount(int,int) public int java.lang.String.compareToIgnoreCase(java.lang.String) public java.lang.String java.lang.String.concat(java.lang.String) public boolean java.lang.String.contains(java.lang.CharSequence) public boolean java.lang.String.contentEquals(java.lang.CharSequence) public boolean java.lang.String.contentEquals(java.lang.StringBuffer) public static java.lang.String java.lang.String.copyValueOf(char[]) public static java.lang.String java.lang.String.copyValueOf(char[],int,int) public boolean java.lang.String.endsWith(java.lang.String) public boolean java.lang.String.equalsIgnoreCase(java.lang.String) public static java.lang.String java.lang.String.format(java.lang.String,java.lang.Object[]) public static java.lang.String java.lang.String.format(java.util.Locale,java.lang.String,java.lang.Object[]) public byte[] java.lang.String.getBytes(java.lang.String) throws java.io.UnsupportedEncodingException public void java.lang.String.getBytes(int,int,byte[],int) public byte[] java.lang.String.getBytes() public byte[] java.lang.String.getBytes(java.nio.charset.Charset) public void java.lang.String.getChars(int,int,char[],int) public native java.lang.String java.lang.String.intern() public boolean java.lang.String.isEmpty() public int java.lang.String.lastIndexOf(java.lang.String) public int java.lang.String.lastIndexOf(int,int) public int java.lang.String.lastIndexOf(int) public int java.lang.String.lastIndexOf(java.lang.String,int) public int java.lang.String.length() public boolean java.lang.String.matches(java.lang.String) public int java.lang.String.offsetByCodePoints(int,int) public boolean java.lang.String.regionMatches(boolean,int,java.lang.String,int,int) public boolean java.lang.String.regionMatches(int,java.lang.String,int,int) public java.lang.String java.lang.String.replace(java.lang.CharSequence,java.lang.CharSequence) public java.lang.String java.lang.String.replace(char,char) public java.lang.String java.lang.String.replaceAll(java.lang.String,java.lang.String) public java.lang.String java.lang.String.replaceFirst(java.lang.String,java.lang.String) public java.lang.String[] java.lang.String.split(java.lang.String) public java.lang.String[] java.lang.String.split(java.lang.String,int) public boolean java.lang.String.startsWith(java.lang.String) public boolean java.lang.String.startsWith(java.lang.String,int) public java.lang.CharSequence java.lang.String.subSequence(int,int) public java.lang.String java.lang.String.substring(int) public java.lang.String java.lang.String.substring(int,int) public char[] java.lang.String.toCharArray() public java.lang.String java.lang.String.toLowerCase() public java.lang.String java.lang.String.toLowerCase(java.util.Locale) public java.lang.String java.lang.String.toUpperCase() public java.lang.String java.lang.String.toUpperCase(java.util.Locale) public java.lang.String java.lang.String.trim() public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException public final void java.lang.Object.wait() throws java.lang.InterruptedException public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException public final native java.lang.Class java.lang.Object.getClass() public final native void java.lang.Object.notify() public final native void java.lang.Object.notifyAll()
package com.wanggc.reflection;
import java.lang.reflect.Method;
/**
* Java 反射练习。
*
* @author Wanggc
*/
public class ReflectionTest {
public static void main(String[] args) throws Exception {
DisPlay disPlay = new DisPlay();
// 获得Class
Class<?> cls = disPlay.getClass();
// 通过Class获得DisPlay类的show方法
Method method = cls.getMethod("show", String.class);
// 调用show方法
method.invoke(disPlay, "Wanggc");
}
}
class DisPlay {
public void show(String name) {
System.out.println("Hello :" + name);
}
}
package com.wanggc.reflection;
import java.lang.reflect.Field;
/**
* Java 反射之属性练习。
*
* @author Wanggc
*/
public class ReflectionTest {
public static void main(String[] args) throws Exception {
// 建立学生对象
Student student = new Student();
// 为学生对象赋值
student.setStuName("Wanggc");
student.setStuAge();
// 建立拷贝目标对象
Student destStudent = new Student();
// 拷贝学生对象
copyBean(student, destStudent);
// 输出拷贝结果
System.out.println(destStudent.getStuName() + ":"
+ destStudent.getStuAge());
}
/**
* 拷贝学生对象信息。
*
* @param from
* 拷贝源对象
* @param dest
* 拷贝目标对象
* @throws Exception
* 例外
*/
private static void copyBean(Object from, Object dest) throws Exception {
// 取得拷贝源对象的Class对象
Class<?> fromClass = from.getClass();
// 取得拷贝源对象的属性列表
Field[] fromFields = fromClass.getDeclaredFields();
// 取得拷贝目标对象的Class对象
Class<?> destClass = dest.getClass();
Field destField = null;
for (Field fromField : fromFields) {
// 取得拷贝源对象的属性名字
String name = fromField.getName();
// 取得拷贝目标对象的相同名称的属性
destField = destClass.getDeclaredField(name);
// 设置属性的可访问性
fromField.setAccessible(true);
destField.setAccessible(true);
// 将拷贝源对象的属性的值赋给拷贝目标对象相应的属性
destField.set(dest, fromField.get(from));
}
}
}
/**
* 学生类。
*/
class Student {
/** 姓名 */
private String stuName;
/** 年龄 */
private int stuAge;
/**
* 获取学生姓名。
*
* @return 学生姓名
*/
public String getStuName() {
return stuName;
}
/**
* 设置学生姓名
*
* @param stuName
* 学生姓名
*/
public void setStuName(String stuName) {
this.stuName = stuName;
}
/**
* 获取学生年龄
*
* @return 学生年龄
*/
public int getStuAge() {
return stuAge;
}
/**
* 设置学生年龄
*
* @param stuAge
* 学生年龄
*/
public void setStuAge(int stuAge) {
this.stuAge = stuAge;
}
}
package com.wanggc.reflection;
import java.lang.reflect.Field;
/**
* Java 反射之属性练习。
*
* @author Wanggc
*/
public class ReflectionTest {
public static void main(String[] args) throws Exception {
// 建立学生对象
Student student = new Student();
// 为学生对象赋值
student.setStuName("Wanggc");
student.setStuAge();
// 建立拷贝目标对象
Student destStudent = (Student) copyBean(student);
// 输出拷贝结果
System.out.println(destStudent.getStuName() + ":"
+ destStudent.getStuAge());
}
/**
* 拷贝学生对象信息。
*
* @param from
* 拷贝源对象
* @param dest
* 拷贝目标对象
* @throws Exception
* 例外
*/
private static Object copyBean(Object from) throws Exception {
// 取得拷贝源对象的Class对象
Class<?> fromClass = from.getClass();
// 取得拷贝源对象的属性列表
Field[] fromFields = fromClass.getDeclaredFields();
// 取得拷贝目标对象的Class对象
Object ints = fromClass.newInstance();
for (Field fromField : fromFields) {
// 设置属性的可访问性
fromField.setAccessible(true);
// 将拷贝源对象的属性的值赋给拷贝目标对象相应的属性
fromField.set(ints, fromField.get(from));
}
return ints;
}
}
/**
* 学生类。
*/
class Student {
/** 姓名 */
private String stuName;
/** 年龄 */
private int stuAge;
/**
* 获取学生姓名。
*
* @return 学生姓名
*/
public String getStuName() {
return stuName;
}
/**
* 设置学生姓名
*
* @param stuName
* 学生姓名
*/
public void setStuName(String stuName) {
this.stuName = stuName;
}
/**
* 获取学生年龄
*
* @return 学生年龄
*/
public int getStuAge() {
return stuAge;
}
/**
* 设置学生年龄
*
* @param stuAge
* 学生年龄
*/
public void setStuAge(int stuAge) {
this.stuAge = stuAge;
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有