如何获得 Array中元素的数据类型,如何获得 List中元素的数据类型

解决方案 »

  1.   

    我觉得,例如已知道List list
    for(Iterator i=list.iterator();i.hasNext()){
          Object o=list.next();
          String className=o.getClass().getName();
    }
    其中className为数据类型的String表示
    Array同理
      

  2.   

    通过反射将类的数据结构打印到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) {
    }
    }
    }
      

  3.   

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

  4.   

    回复人: 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的每一个元素的数据类型了。