最近有个功能要实现,突然碰到这个问题
首先,声明了一个List<BigDecimal> list = new ArrayList<BigDecimal>();\将list对象做为参数传入一个方法中,想要得到list中保存的BigDecimal,因为前提是我根本不知道list<这里面是什么对象>所以想要得到<>中的完整类名(也就是包名加类名)请问用什么方法可以实现。谢谢!

解决方案 »

  1.   

    有没有搞错啊??
    我传的是list
    我要得到的是list<这里面的东西>
    拜托大家看清楚了再说好吗??
      

  2.   

    泛型中的<>中的东西只是编译时检查用的,你如果要在程序中得到,只能用list.get(0).getClass().getName()了前提是list不为null也不为空,否则好像没法得到
      

  3.   

    真的没有办法得到吗???
    而我做的这个功能洽洽是list.size()==0的情况
    怎么办?请大家想想办法.
      

  4.   

    对,用反射
    class InDto{
        List<cn.java.Vo> voList;
        public List<Vo> getVoList(){
            return this.voList;
        }
        public void setVoList(final List<Vo> voList){
            this.voList = voList;
        }
    }现在只传InDto类(cn.java.demo.InDto)调用下面的方法demo.Method(InDto.class)demoMethod(Class cls) {
    怎么样才能得到voList<这里面的完整类名>
    }
      

  5.   

    这个好像做不到,不知你的什么需求要这样,如果一定要得到的话,可以在你的InDto类里定义一个static的变量,让它等于<>里的类,然后要用时取就行了.反正你这个<>里的类在编译时已经是不变的了
      

  6.   

    现在inDto,vo都不可以变,我正在编写测试工具
    为什么JDK不为list提供这样的方法呢?