String str="java.lang.Integer"     Object obj=xx     str 是从数据库中取出来的 str 也可能是"java.lang.String"  将xx转换成str文本中的类型除了对str文本的的进行判断还有其它方法吗比如用Class.forName("java.lang.String");

解决方案 »

  1.   

    if (value instanceof String) {
    return Attribute.create(id, AttributeType.STRING, value.toString());
    }
    if (value instanceof Double) {
    return Attribute.create(id, AttributeType.DOUBLE,
    Double.parseDouble(value.toString()));
    }
    if (value instanceof Boolean) {
    return Attribute.create(id, AttributeType.BOOLEAN,
    Boolean.parseBoolean(value.toString()));
    }
    if (value instanceof Integer) {
    return Attribute.create(id, AttributeType.INTEGER,
    Integer.parseInt(value.toString()));
    }
      

  2.   

    用instanceof 判断吧 。if (str instanceof Double) {
      return str.toString();
    }
      

  3.   

    Java并没有那么智能,最多是提供了反射机制,每种转换还是需要自己做的。
    像MyBatis里处理每种类型,都有一个对应的TypeHandler
    public class Hello {
        public static void main(String[] args) {
            String str = "java.lang.String";
            String myObj = "Hello";
            Object obj = myObj;        // 每个类型都有一个对应的convert
            if ("java.lang.String".equals(str)) {
                String result = convertToString(obj);
            }        str = "java.lang.Integer";
            if ("java.lang.Integer".equals(str)) {
                convertToInteger(new Integer(1));
            }        convertToString(new Double(23)); // Error
        }    public static String convertToString(Object obj) {
            return (String) obj;
        }    public static Integer convertToInteger(Object obj) {
            return (Integer) obj;
        }
    }
      

  4.   

    Java的泛型也是伪泛型,都是在类型前面加个强制转换的标志,不像脚本语言那样直接赋值就可以根据你使用的情况决定是哪种类型。
      

  5.   

    不检查str直接转化么?好像不行吧。
      

  6.   

    没看太明白,是将XX转换成str等于的那个类型嘛。如果只有一种类型直接强转就好了。多个的话只能多次判断吧。
      

  7.   

    好像是不能,只能用笨方法了:
    你把数据库获取出的对象设定的类都也用java.lang.String进行转化,然后判断哪个值和str一样,都不一样当然就是原String类型了
    方法很笨拙见笑了
      

  8.   

    楼主这个问题有点不是很清晰,如果:
    String str="java.lang.Integer";
    Object obj = "你好,世界。";打算怎么转换?
      

  9.   

    我靠,难道你用JS用多了,想java也像JS那样,直接用个var d=object就行了么
      

  10.   


    已经Integer类型的了,后面干嘛再转换两遍呢
      

  11.   


    已经Integer类型的了,后面干嘛再转换两遍呢
    因为value是一个object啊,貌似只转了一遍吧