社区
Java SE
帖子详情
有没有办法遍历一个类中的所有数据成员?
junglesong
2005-04-20 01:27:09
这些类基本都是String类型成员变量+getter,setter函数的形式,有没有什么办法依次取得其中的每个成员变量呢?
...全文
210
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方法
OpenCV2加入了
一个
c++接口,使用Mat类
数据
结构,可以实现自动内存管理,且扩展性大大提高。Mat是
一个
类,由两个
数据
部分组成:矩阵头(包含矩阵尺寸、存储方法、存储地址等)和
一个
指向存储所有像素值矩阵的指针。Mat类最重要的一点是浅拷贝和深拷贝问题。
python中
数据
成员
有哪两类_python
遍历
序列enumerate函数浅析 python如何
遍历
类内所有
数据
成员
?...
python中关于enumerate()函数问题:(1)显示结果得第一行0 wang L1是第一次循环,正确。 显示结果的更改的是list元素,name变量并没有改变,你print的是name。如何按行枚举 python enumerateenumerate()说明 enumerate()是python的内置函数 enumerate在字典上是枚举、列举的意思 对于
一个
可迭代的(iterable)/...
C++实验编程题:.定义
一个
描述学生(Student)基本情况的类,
数据
成员
包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count
题目描述: *6.定义
一个
描述学生(Student)基本情况的类,
数据
成员
包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)、数学总成绩(mathTotalScore)和英语总成绩(englishTotalScore)。其中姓名定义为长度为18的字符数组,其它
数据
成员
类型为整型,数学总成绩、英语总成绩和人数为静态
数据
成员
,...
建立
一个
String_Interator类把
一个
字符串中的数字字符转化为正整数
建立
一个
String_Interator类把
一个
字符串中的数字字符转化为正整数,具体要求如下(1)私有
数据
成员
(2)公有
成员
函数(3)任务描述 (1)私有
数据
成员
char* s; 用动态空间存放字符串 (2)公有
成员
函数 String_Interator(char* str); 用参数str初始化
数据
成员
operator int(); 转换函数,将
数据
成员
s转化整数,并返回该数 void show(); 输出
数据
成员
s ~String_Interator
python定义
一个
学生类包括学号姓名出生日期成绩_定义
一个
学生类CStudent,学生类的
数据
成员
包括姓名、学号和成绩等。...
展开全部#include"Exp19_1.h"#include#include#includeusing namespace std;class student{ //为了简化,
数据
域32313133353236313431303231363533e58685e5aeb931333262356138仅保留学号与姓名int key;string name;public:void putkey(...
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章