java 关于反射机制的问题

现在问题是这样的,一切问题都是相对于实体类的,比如有person-->teacher()-->math-teacher我用的getDeclarefield能获得属性值但是... 现在问题是这样的,一切问题都是相对于实体类的,比如有person-->teacher()-->math-teacher 我用的getDeclarefield能获得属性值 但是父类的属性无法获取,getSupperClass能获得最贴近的一个父类,现在问题如果有层继承,怎么获得所有属性,比如这个问题怎么获得math-teacher的所有属性
怕大家难以理解
我们会经常用到java 实体类 插入数据库的操作 ,我们知道重复写sql很麻烦 都要重复写属性字段,现在我用java的反射机制来实现,每一个实体类都有get和set方法,用getDelcaredField能这个获得所有实体类的所有属性,然后拼凑成sql语言。
现在我的问题是getDelcaredField只能获得实体类自身的属性 他的父类的属性无法获得,比如Person(name,sex),Teacher(school),Math_teacher(xxx) 我对Math_teacher这个类调用getDelcaredField,只能获得xxx的值,无法获得Teacher的属性值,
这个问题我也google过,但是上面只有获得最近一个父类的属性值(既是Teacher),如果有多层继承呢,如何获得Math_teacher的所有属性值既是(name,sex,school,xxx)。
展开
 我来答
pingguopaiabc
2011-02-17
知道答主
回答量:18
采纳率:0%
帮助的人:44.2万
展开全部
留个邮箱吧 我自己也封装了一个类似hibernate的持久层 代码不长 功能简单实用 你有兴趣的话可以给你看看 你直接hi我就行 我几乎每天都在线 你这个3楼的方法也行能获得所有属性
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tianziren123
2011-02-10 · 超过16用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:40.3万
展开全部
此方法可以解决你的问题 有什么不懂的 可以直接hi我

package com.sf.book.reflection;

import java.lang.reflect.Field;

public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
printField(C.class);
}

@SuppressWarnings("unchecked")
public static void printField(Class clz) {
Class superClass = clz.getSuperclass();
if (superClass != null) {
printField(superClass);
}
Field[] fields = clz.getDeclaredFields();
System.out.println(clz.getName());
for (int i = 0; i < fields.length; i++) {
System.out.println(fields[i].getName());
}
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chengsimin123
2011-02-07 · TA获得超过136个赞
知道答主
回答量:201
采纳率:0%
帮助的人:230万
展开全部
这个问题可以用hibernate框架解决。。。我发个关于这个的核心源码给你看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
强强壹号
2011-02-21
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
revoke~ U 还是给他个现成的吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式