我要转换成什么类型还不知道,通过反射得到可能是String或者int,但是得到的这个"String","int"是字符串形式的,怎么用"int"这个字符串把Object转换成int,我原本写的是用if判断是哪一类型,后面觉得太麻烦,想找一个简单点的办法

解决方案 »

  1.   

    标题是“要把Object转换成int..”然后又说“我要转换成什么类型还不知道”你的表述能力太差了,你说清楚再提问吧,或者你举个例子。
      

  2.   

    先把它强制转化成int,在出错的时候转成String
      

  3.   

    Object obj = "你想要转换的东东";
    try{
        return Integer.parseInt(obj.toString());
    }catch(Exception e){
        return obj.toString();
    }
    OK
      

  4.   

    用反射得到的可能是"String","int","double","char","boolean","long"如果一个一个判断太麻烦,
      

  5.   


    public static void main(String[] args) throws Exception {
    // System.out.println(convert("String","abc"));
    System.out.println(convert("int","123"));
    System.out.println(convert("double","123.22"));
    }

    static Object convert(String type,String value) throws EvalError{
    Interpreter i = new Interpreter();
    i.eval("Object result = ("+type+")"+value);
    return i.get("result");
    }换个思路可以么?各种基本类型都有个包装类,里面都有valueOf方法.可你传入的字符串是int不是Integer.所以vvalueOf方法行不通,如果你可以传入Integer,Double等就可以了.
    如果是强置转型.(String)"传入的值",(char)'传入的值',(int)传入的值.又分出三种写法.
    以上代码的思路可以的话,需要下载beanshell包.直接搜索去官网可以下载到
      

  6.   


    那么如果 目标是一个具体的自定义的类呢... 例如:  MyClass..
      

  7.   

    楼主的意思我明白..
      在struts中填充 form-bean 的时候就会遇到这样的问题. 获得request中的参数名和值。
    但是这个两个都是String类型.反射的到对应bean中的setter方法 中的形参类型.
    但是 Method.invoke 调用的时候却要传递参数的实例对象..
    你知 参数名Class<?> 但却不知怎么把从request中获得的字符串值 转换成这种相应的Class<?>实例
     ... 
    struts工具类 org.apache.commons.beanutils.BeanUtils setProperty(...) 倒是可以完成.
    要想怎么具体实现.. 你倒是可以看看它的源码..
    反正现在看不懂...我也是菜鸟啊.
       ...但是 如果照你最开始的那样if 判断.最终转换的只有你预定义的某些类
    至于其他的解决办法  .... 我还不知道   
      

  8.   

    已知一个字符串 例如: "2011-01-24"
    已知一个Class<?> 例如: java.util.Date;
    怎么把字符串 "2011-01-24" 转换成 java.util.Date楼主大概就这意思吧  
      

  9.   


    你说的这是动态语言的特性,像 Java 这种静态语言要做到这些是很难的。比如这个 Object 是个 Integer 那还能转,若是个 Student 对象怎么转呢?