高分求java转换问题 String str="java.lang.Integer" Object obj=xx str 是从数据库中取出来的 str 也可能是"java.lang.String" 将xx转换成str文本中的类型除了对str文本的的进行判断还有其它方法吗比如用Class.forName("java.lang.String"); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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())); } 用instanceof 判断吧 。if (str instanceof Double) { return str.toString(); } Java并没有那么智能,最多是提供了反射机制,每种转换还是需要自己做的。像MyBatis里处理每种类型,都有一个对应的TypeHandlerpublic 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; }} Java的泛型也是伪泛型,都是在类型前面加个强制转换的标志,不像脚本语言那样直接赋值就可以根据你使用的情况决定是哪种类型。 不检查str直接转化么?好像不行吧。 没看太明白,是将XX转换成str等于的那个类型嘛。如果只有一种类型直接强转就好了。多个的话只能多次判断吧。 好像是不能,只能用笨方法了:你把数据库获取出的对象设定的类都也用java.lang.String进行转化,然后判断哪个值和str一样,都不一样当然就是原String类型了方法很笨拙见笑了 楼主这个问题有点不是很清晰,如果:String str="java.lang.Integer";Object obj = "你好,世界。";打算怎么转换? 我靠,难道你用JS用多了,想java也像JS那样,直接用个var d=object就行了么 已经Integer类型的了,后面干嘛再转换两遍呢 已经Integer类型的了,后面干嘛再转换两遍呢因为value是一个object啊,貌似只转了一遍吧 求助关于iframe的问题 不明白,ajax,javascript 自动匹配标签是怎么实现的? No current row in the ResultSet struts配置问题: 请详细解释下${item.priority == 3}的语法 求助:如何用jsp删除记录 java日期类型转换,请指教 求arrylist的分页函数 请问:js如何控制frame里的页面在父级窗口跳转? JSP博客 ,数据可以添加到数据库,前台空指针无法显示是什么原因? 关于CRM系统接单机器人的设计
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()));
}
return str.toString();
}
像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;
}
}
你把数据库获取出的对象设定的类都也用java.lang.String进行转化,然后判断哪个值和str一样,都不一样当然就是原String类型了
方法很笨拙见笑了
String str="java.lang.Integer";
Object obj = "你好,世界。";打算怎么转换?
已经Integer类型的了,后面干嘛再转换两遍呢
已经Integer类型的了,后面干嘛再转换两遍呢
因为value是一个object啊,貌似只转了一遍吧