请问各位大哥: 如何获得 Array中元素的数据类型,如何获得 List中元素的数据类型

jojo010 2005-11-22 06:13:55
如何获得 Array中元素的数据类型,如何获得 List中元素的数据类型
...全文
358 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazycy 2005-11-23
  • 打赏
  • 举报
回复
zouxinfox说的应该够用了
tramp73 2005-11-23
  • 打赏
  • 举报
回复
路过,学习...
single_study 2005-11-22
  • 打赏
  • 举报
回复
回复人: zouxinfox(Read the source,Use the force) ( ) 信誉:100 不是说的很清楚了嘛 。


for(Iterator i=list.iterator();i.hasNext();){
Object o=i.next();
String className=o.getClass().getName();
System.out.println(className);
}
这样不就找到list的每一个元素的数据类型了。
sussman 2005-11-22
  • 打赏
  • 举报
回复
用Iterator,查查API,很清楚的
jojo010 2005-11-22
  • 打赏
  • 举报
回复
如何判断某数据成员是集合类(Array, List)
如何获得 Array中元素的唯一数据类型
如何获得 List中各个元素的数据类型
jojo010 2005-11-22
  • 打赏
  • 举报
回复
通过反射将类的数据结构打印到XML上

如何判断某数据成员是集合类
如何获得 Array中元素的唯一数据类型
如何获得 List中各个元素的数据类型

/**
@version 1.1 2004-02-21
@author Cay Horstmann
*/

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

import java.io.FileOutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.lang.reflect.Array;
import java.util.List;

class Person {
private String name;
private int age;
}

public class ReflectionTest {

private String s;
private boolean b;
private int i;

private Person man;
private List list;
private int[] f = new int[5]; //Array 我希望能反射出 int[] 或是 int 可实际返回的是 [I  啥玩意??
//private Array array;

public static void printFields(Class c1) {
Element root = new Element(c1.getName());
Document doc = new Document(root);
String name ="";

try {
Field[] fields = c1.getDeclaredFields();
int length = fields.length;
for (int i = 0; i < length; i++) {
Field f = fields[i];
Class type = f.getType();
if(type != Array.class)
name = f.getName();
else
name =

Element element = new Element("pro");
element.setAttribute("name", name);

Element modifier = new Element("Modifier");
modifier.setText(Modifier.toString(f.getModifiers()));
element.addContent(modifier);

Element eType = new Element("Type");
eType.setText(type.getName());
element.addContent(eType);

root.addContent(element);
}
Format format = Format.getCompactFormat();
format.setEncoding("utf-8");
format.setIndent(" ");
XMLOutputter XMLOut = new XMLOutputter(format);
try {
XMLOut.output(doc, new FileOutputStream(c1.getName() + ".xml"));
}
catch (Exception e) {
}
}
catch (Exception e) {
}
}

public static void main(String[] args) {
ReflectionTest rt = new ReflectionTest();
String name = "";
name = rt.getClass().getName();
/* name = "java.lang.Double";
if (args.length > 0)
name = args[0];
else
System.out.println("AAAAA");
*/
try {
Class c1 = Class.forName(name);
printFields(c1);
}
catch (ClassNotFoundException e) {
}
}
}
zouxinfox 2005-11-22
  • 打赏
  • 举报
回复
错了,是Object o=i.next();
zouxinfox 2005-11-22
  • 打赏
  • 举报
回复
我觉得,例如已知道List list
for(Iterator i=list.iterator();i.hasNext()){
Object o=list.next();
String className=o.getClass().getName();
}
其中className为数据类型的String表示
Array同理
zouxinfox 2005-11-22
  • 打赏
  • 举报
回复
学习
skycncomp 2005-11-22
  • 打赏
  • 举报
回复
不清楚

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧