1、上面的两个类是做什么用的?
2、下面这段代码是啥意思啊:1.public static Object filtrate(Object object) throws Exception {
2. Class newClass = object.getClass();
3. Field[] field = newClass.getDeclaredFields();4. Object obj = newClass.newInstance();5. for (int i = 0; i < field.length; i++) {
6. String methodPrefix = field[i].getName().toString().substring(0, 1).toUpperCase();
7. String methodSuffix = field[i].getName().toString().substring(1);
8. Class[] argList = new Class[1];
9. Method methodGet = newClass.getMethod("get" + methodPrefix + methodSuffix, null);
10. Method methodSet;
……
}
……
}不明白阿?望指教……
2、下面这段代码是啥意思啊:1.public static Object filtrate(Object object) throws Exception {
2. Class newClass = object.getClass();
3. Field[] field = newClass.getDeclaredFields();4. Object obj = newClass.newInstance();5. for (int i = 0; i < field.length; i++) {
6. String methodPrefix = field[i].getName().toString().substring(0, 1).toUpperCase();
7. String methodSuffix = field[i].getName().toString().substring(1);
8. Class[] argList = new Class[1];
9. Method methodGet = newClass.getMethod("get" + methodPrefix + methodSuffix, null);
10. Method methodSet;
……
}
……
}不明白阿?望指教……
Field 代表类里的变量
Class 代表类在运行时的一个映射.看这段代码像是在写一个自动生成 bean 的代码, 自动生成setter getter方法.
*filtrate函数以一个Object对象做为参数,在函数体内部
*对该Object采用反射机制,在运行态下,来得到该Object
*所定义的字段、以及函数等信息
*/
1.public static Object filtrate(Object object) throws Exception {
2. Class newClass = object.getClass(); //得到对象所对应的Class信息
3. Field[] field = newClass.getDeclaredFields(); //获取该类中所定义的字段信息(字段名)4. Object obj = newClass.newInstance(); //创建一个该Class所对应的实例即Object5. for (int i = 0; i < field.length; i++) {
6. String methodPrefix = field[i].getName().toString().substring(0, 1).toUpperCase(); //获取字段名的第一个字符
7. String methodSuffix = field[i].getName().toString().substring(1); //获取字段名除第一个字符外的其他所有字符
8. Class[] argList = new Class[1];
9. Method methodGet = newClass.getMethod("get" + methodPrefix + methodSuffix, null); //在该类中查找与字段所对应的get方法
10. Method methodSet
public static String toString(Object obj)
{
StringBuffer str=new StringBuffer("");
//得到类
Class c = obj.getClass();
//得到类中定义的属性
Field[] fields = c.getDeclaredFields();
//设置访问权限
AccessibleObject.setAccessible(fields,true);
for(int i=fields.length-1;i>=0;i--)
{
Field f = fields[i];
str.append(" [ ").append(f.getName()).append("=");
try
{
//调用obj.getXXX方法
Object o = f.get(obj);
if(o == null)
{
str.append("null");
}
else
{
str.append(o.toString());
}
}
catch(Exception e)
{
e.printStackTrace();
}
str.append(" ] ,");
}
return str.toString();
}