社区
Java SE
帖子详情
有没有办法遍历一个类中的所有数据成员?
junglesong
2005-04-20 01:27:09
这些类基本都是String类型成员变量+getter,setter函数的形式,有没有什么办法依次取得其中的每个成员变量呢?
...全文
203
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();
视觉SLAM——OpenCV之Mat结构详解
数据
成员
和构造函数 创建Mat方法
遍历
Mat方法
本文详细介绍OpenCV中的Mat类,包括其结构、构造方法、
数据
成员
及
遍历
方式。阐述了Mat类如何解决内存管理问题,并提供了多种实例演示如何创建和访问Mat对象。
python中
数据
成员
有哪两类_python
遍历
序列enumerate函数浅析 python如何
遍历
类内所有
数据
成员
?...
本文详细介绍了Python中的enumerate()函数用法,包括如何通过enumerate()在for循环中获取列表的索引和值,以及如何利用enumerate()函数进行
遍历
操作。
建立
一个
String_Interator类把
一个
字符串中的数字字符转化为正整数
本文介绍了
一个
名为String_Interator的类,用于将字符串中的数字字符转换为整数。通过实例演示了如何使用该类从混合字符串中提取数字并进行转换。
python定义
一个
学生类包括学号姓名出生日期成绩_定义
一个
学生类CStudent,学生类的
数据
成员
包括姓名、学号和成绩等。...
这是
一个
C++程序,它定义了
一个
名为`student`的类,
类中
包含了学号(key)、姓名(name)等属性。程序还实现了链表
数据
结构,并提供了插入、删除、查找和显示学生信息的功能。此外,程序能够从文件读取
数据
并创建有序链表。
C++实验编程题:.定义
一个
描述学生(Student)基本情况的类,
数据
成员
包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count
本文详细介绍了如何使用C++设计并实现
一个
描述学生基本情况的类,包括姓名、学号、数学和英语成绩等属性,同时利用静态
成员
变量记录学生总数、数学和英语总成绩,并通过构造函数、显示基本
数据
函数和显示静态
数据
函数进行操作。
Java SE
62,622
社区成员
307,256
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章