黑马程序员技术交流社区

标题: 如何用反射得到数组的类型 [打印本页]

作者: alax    时间: 2014-5-21 03:34
标题: 如何用反射得到数组的类型
如何用反射得到数组的类型
作者: 艮昕辶    时间: 2014-5-21 15:36
  1. package test;

  2. import java.lang.reflect.Constructor;
  3. import java.lang.reflect.Field;
  4. import java.lang.reflect.InvocationTargetException;
  5. import java.lang.reflect.Method;

  6. public class Demo1 {

  7.         /**
  8.          * @param args
  9.          * @throws IllegalAccessException
  10.          * @throws InstantiationException
  11.          * @throws SecurityException
  12.          * @throws NoSuchMethodException
  13.          * @throws InvocationTargetException
  14.          * @throws IllegalArgumentException
  15.          */
  16.         public static void main(String[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
  17.                 // TODO Auto-generated method stub
  18.                
  19.                
  20.                 System.out.println(int[].class.getName());
  21.                 for(Field field:int[].class.getFields()){
  22.                        
  23.                         System.out.println(field.getName());
  24.                 }
  25.                 for(Method method:int[].class.getMethods()){
  26.                        
  27.                         System.out.println(method.getName());
  28.                 }
  29.                 for(Constructor constructor:int[].class.getConstructors()){
  30.                        
  31.                         System.out.println(constructor.getName());
  32.                 }
  33.         }

  34. }
复制代码

作者: 曾倩倩    时间: 2014-7-1 09:47
package cn.baayong.thread;

import java.lang.reflect.Method;

// 2014-2-26 下午02:18:17 created by haobo56
public class Test {
    public static void main(String[] args) {
        //构造对象
        User user = new User();
        String strs[] ={"1","2","3"};
        user.setStrs(strs);
         
        Method[] methods = user.getClass().getMethods();
        for(Method m:methods){
            String methodNames= m.getName();
            if(methodNames.equals("getStrs")){
                try {
                    Object obj =m.invoke(user, new Object[]{});
                    if(obj instanceof java.lang.String []){
                        String tempstrs [] =(String[]) obj;
                        for(String str:tempstrs){
                            System.out.println(str);
                        }
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
class User{
    private String strs[];

    public String[] getStrs() {
        return strs;
    }

    public void setStrs(String[] strs) {
        this.strs = strs;
    }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2