社区
Java SE
帖子详情
有没有办法遍历一个类中的所有数据成员?
junglesong
2005-04-20 01:27:09
这些类基本都是String类型成员变量+getter,setter函数的形式,有没有什么办法依次取得其中的每个成员变量呢?
...全文
176
10
打赏
收藏
有没有办法遍历一个类中的所有数据成员?
这些类基本都是String类型成员变量+getter,setter函数的形式,有没有什么办法依次取得其中的每个成员变量呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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();
Python
遍历
list 集合的各种技巧
在 Python 中,列表可以包含嵌套的列表,即
一个
列表的元素也是
一个
列表。在本篇博客中,我将向你介绍一些
遍历
Python 列表的各种技巧,从简单到复杂,让你更好地了解 Python 中的
遍历
操作。for 循环是 Python 中最基本的
遍历
工具,可以用于
遍历
列表中的所有元素。函数在每次迭代时,都会返回
一个
包含索引和元素的元组,通过解包的方式,我们可以轻松地获取索引和元素。有时候,在
遍历
列表时,我们还需要获取元素在列表中的索引。列表推导式是一种简洁优雅的方式来创建新的列表,同时可以完成
遍历
和过滤的功能。
C++实现
遍历
目录
所谓
遍历
目录,就是给定
一个
目录,访问其中的所有文件(包括子目录下的文件)。迭代是比较常用的
遍历
算法。本文利用C++面向对象的特性,通过
一个
类CBrowseDir,对目录
遍历
进行了封装。用户只需掌握该类四个
成员
函数的用法,就可以在自己的程序中,很方便地实现目录
遍历
。 类CBrowseDir使用了迭代算法。因为算法不是本文重点,笔者不打算展开进一步讨论,对其感兴趣者可参考相关资料。 一
c语言结构体元素
遍历
方法,
有没有
办法
在C中循环使用不同类型元素的结构体?...
我不知道你想要实现什么,但是您可以使用X-Macros并让预处理器对结构的所有字段进行迭代://--- first describe the structure, the fields, their types and how to print them#define X_FIELDS \X(int, field1, "%d") \X(int, field2, "%d") \X(char, fie...
二叉树 - (前序,中序,后序,层序
遍历
实现)
什么是二叉树? 前序
遍历
?中序
遍历
?后序
遍历
?层序
遍历
? 二叉树的基本操作
lua中的4 种常用
遍历
当我在工作中使用lua进行开发时,发现在lua中有4种方式
遍历
一个
table,当然,从本质上来说其实都一样,只是形式不同,这四种方式分别是: for key, value in pairs(tbtest) do XXX end for key, value in ipairs(tbtest) do XXX end for i=1, #(tbtest) do XXX
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章