社区
Java SE
帖子详情
有没有办法遍历一个类中的所有数据成员?
junglesong
2005-04-20 01:27:09
这些类基本都是String类型成员变量+getter,setter函数的形式,有没有什么办法依次取得其中的每个成员变量呢?
...全文
172
10
打赏
收藏
有没有办法遍历一个类中的所有数据成员?
这些类基本都是String类型成员变量+getter,setter函数的形式,有没有什么办法依次取得其中的每个成员变量呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
junglesong
2005-04-20
打赏
举报
回复
输出结果如下:
,AFG,,,アフガニスタン,,,,0,,,,,
,AGO,,,アンゴラ,,,,0,,,,,
,ALB,,,アルバニア,,,,0,,,,,
,ANT,,,オランダリョウアンチル,,,,0,,,,,
,ARG,,,アルゼンチン,,,,0,,,,,
,ARM,,,アルメニア,,,,0,,,,,
,AUS,,,オ-ストラリア,,,,0,,,,,
,AUT,,,オ-ストリア,,,,0,,,,,
,AZE,,,アゼルバイジャン,,,,0,,,,,
,BEL,,,ベルギ-,,,,0,,,,,
,BGD,,,バングラデイシユ,,,,0,,,,,
junglesong
2005-04-20
打赏
举报
回复
重整一下再贴。
public static void MakeDateFile(String strFilename,String strClassName,Object[] objArr){
// Get Class
Class cls=null;
try {
cls = Class.forName(strClassName);
} catch (ClassNotFoundException e) {
}
// Trancate the Array
try{
Object obj,obj2;
obj=cls.newInstance();
int i,j;
Field[] fields = cls.getDeclaredFields();
// Print Fields
for(i=0;i<fields.length;i++){
System.out.print(fields[i].getName().toString()+",");
}
System.out.println();
// Print Varaiables
for(i=0;i<objArr.length;i++){
obj=objArr[i];
for(j=0;j<fields.length;j++){
Method method=cls.getMethod(getGetFunctionName(fields[j].getName().toString()),new Class [] { } );
obj2=method.invoke(obj,null);
System.out.print(obj2.toString()+",");
}
System.out.println();
}
}
catch(Exception e){
e.printStackTrace();
}
}
public static String getGetFunctionName(String strVariablename){
String strHead=strVariablename.substring(0,1);
String strTail=strVariablename.substring(1,strVariablename.length());
String strRetval="get"+strHead.toUpperCase()+strTail;
return strRetval;
}
junglesong
2005-04-20
打赏
举报
回复
用这个两个函数搞定了。
public static void MakeDateFile(String strFilename,String strClassName,Object[] objArr){
if(CommonUtil.isValidString(strFilename)==false){
CommonUtil.showErrorDialog("File name is invalid!");
return;
}
// Get Class
Class cls=null;
try {
cls = Class.forName(strClassName);
} catch (ClassNotFoundException e) {
}
// Trancate the Array
try{
Object obj,obj2;
obj=cls.newInstance();
Field[] fields = cls.getDeclaredFields();
for(int i=0;i<objArr.length;i++){
obj=objArr[i];
for(int j=0;j<fields.length;j++){
Method method=cls.getMethod(getGetFunctionName(fields[j].getName().toString()),new Class [] { } );
obj2=method.invoke(obj,null);
System.out.print(obj2.toString()+",");
}
System.out.println();
}
}
catch(Exception e){
e.printStackTrace();
}
}
public static String getGetFunctionName(String strVariablename){
String strHead=strVariablename.substring(0,1);
String strTail=strVariablename.substring(1,strVariablename.length());
String strRetval="get"+strHead.toUpperCase()+strTail;
return strRetval;
}
zcjl
2005-04-20
打赏
举报
回复
可以使用commons-beanutils.jar里面的org.apache.commons.beanutils.PropertyUtils
使用示例代码如下:
PropertyDescriptor[] descr = PropertyUtils.getPropertyDescriptors(bean);
Map props = new HashMap();
for (int i = 0; i < descr.length; i++) {
PropertyDescriptor d = descr[i];
if (d.getReadMethod() == null)
continue;
try {
props.put(d.getName(), PropertyUtils.getProperty(bean, d.getName()));
} catch (Exception e) {
}
}
junglesong
2005-04-20
打赏
举报
回复
大家提供一个针对具体实例的办法吧。
junglesong
2005-04-20
打赏
举报
回复
这些都是对类的操作阿,如何对应到类的实例中呢?
itjourney
2005-04-20
打赏
举报
回复
Class cls = Class.forName("xxx");
Field[] fields=cls.getFields();
MARS.nEIL
2005-04-20
打赏
举报
回复
通过Class的方法getDeclaredMethods,getDeclaredFields可以得到类中的方法和成员变量
jFresH_MaN
2005-04-20
打赏
举报
回复
Field [] f=Class.forName("xxx.yyy").getDeclaredMethods()
jFresH_MaN
2005-04-20
打赏
举报
回复
Field [] f=Class.forName("xxx.yyy").getDeclaredFields();
数据
结构基础系列(6):树和二叉树
数据
结构课程是计算机类专业的专业基础课程,在IT人才培养中,起着重要的作用。课程按照大学计算机类专业课程大纲的要求,安排教学内容,满足需要系统学习
数据
结构的人。系列课程包含11个部分,本课为第6部分“树和...
c语言结构体元素
遍历
方法,
有没有
办法
在C中循环使用不同类型元素的结构体?...
我不知道你想要实现什么,但是您可以使用X-Macros并让预处理器对结构的所有字段进行迭代://--- first describe the structure, the fields, their types and how to print them#define X_FIELDS \X(int, field1, "%d...
通过反射
遍历
Model对象获得属性与赋值。
那么
有没有
很好的
办法
能够自动匹配属性并赋值呢? 答案肯定是有的——反射
遍历
属性。 我这里建了
一个
控制太应用程序进行测试,并建了
一个
Student的model类,并给了3个字段。 Student /// <summary> ///...
C++实现
遍历
目录
所谓
遍历
目录,就是给定
一个
目录,访问其中的所有文件(包括子目录下的文件)。迭代是比较常用的
遍历
算法。本文利用C++面向对象的特性,通过
一个
类CBrowseDir,对目录
遍历
进行了封装。用户只需掌握该类四个
成员
函数的...
二叉树 - (前序,中序,后序,层序
遍历
实现)
什么是二叉树? 前序
遍历
?中序
遍历
?后序
遍历
?层序
遍历
? 二叉树的基本操作
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章