Java编码问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java编码问题相关的知识,希望对你有一定的参考价值。
1. public static Object transfer(Object value, Class type)
2. if ((value instanceof String) && value.toString().trim().equals(""))
3. if (java / lang / String.equals(type))
4. return value;
5. else
6. return null;
7. return null;
8.
在Class文件中看到有这样的代码,不能理解第5行代码的意思,望有人能为我释惑!先谢谢了!
不好意思,我的问题是第三行代码不理解!!!
首先声明这是项目里运行的一段代码,所以是不会有错的。代码意思看上去是在判断传入的type是否是String类型,但 java / lang / String 这又是字符串的写法,而且就算它等于java.lang.String,那也要先 getClass 后才能使用 equals 方法。精通JVM的给个正解。
else
// 这里语句执行的条件是 条件表达式1的结果是false
----------------------------------------------------------------------------
if(条件表达式2)
//如果条件表达式2为ture,下面的代码不会执行
else if(条件表达式3)
// 条件表达式3是在条件表达式2为false时才会执行的判断
//如果条件表达式3为ture,下面的代码不会执行
else if(条件表达式4)
// 条件表达式4是在条件表达式2和条件表达式4都为false时才会执行的判断
追问
谢谢了 不好意思先 刚刚写错了 我的问题是第三行代码 (java / lang / String.equals(type)) ,不吝赐教啊!
参考资料:http://zhidao.baidu.com/question/351894734.html?an=0&si=1
参考技术B if(java.lang.String.class.equals(type)直接写是错的 你这里是匹配类 java.lang.String 就是 String 这个类所在的包
你的type 也是 Class 类型的 对比两个class内容是否相等本回答被提问者采纳 参考技术C 你的代码没有大括号,所以层次不是很不是很清楚。那个else是第一个if里的。 参考技术D 第三行的意思是判定type是否是java.lang.String 第5个回答 2012-01-13 java / lang / String 不应该是 / 啊,一个该是 点, String的全类名
java编码,问题?
这是PO和VO的转换,请问这两个方法是什么意思的啊、?
方法一: public static Object copyProperties(Object src,Object desc)
MapperIF mapp=new DozerBeanMapper();
mapp.map(src, desc);
return desc;
方法二: public static <T> T copyProperties(Object src,Class<T> clazz)
MapperIF mapp=new DozerBeanMapper();
return (T)mapp.map(src, clazz);
是不是一个是传类,一个传对象,但是,具体怎么说啊?
方法一是运行时多态,通过接口和抽象类实现,java中“一个类的引用可以指向其子类”。jdk1.5之前只有这种多态,在运行时辨别类型。
方法二是编译时多态,实际上就是泛型,jdk1.5引用泛型其实是为了吸引c++程序员的,不过说实话,对容器实现泛型确实能起到很好的保护作用,所以泛型在java里就用的越来越多了,后来容器类全部都使用泛型了,比如Map、Set接口。
这两个都是传递对象,类是没有办法传递的,方法一由jre运行时自动判断对象的类型,方法二是编程时人工指定类型,一方面提高运行时速度,另一方面防止类型转换失败。。。那个<T>就是告诉jdk这里人为指定一个类型。 参考技术A 这两个方法 是一个意思 只不过第一个是传的对象~ 第二个是没有对象的时候利用反射来提供特定的支持~ 这两个方法的第二个参数起辅助作用。 第二个也可说是第一个的特殊情况 对T具体化 参考技术B 注意看你的方法的返回值类型:
第一个方法的返回值类型:Object
第二个方法的返回值类型:<T>
再看你传的参数,同理!!
这两个方法的方法名相同,但是,参数类型与返回值的类型均不同,是属于方法的重载!
以上是关于Java编码问题的主要内容,如果未能解决你的问题,请参考以下文章