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的给个正解。

参考技术A f (条件表达式1)
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编码问题的主要内容,如果未能解决你的问题,请参考以下文章

java 中编码解码问题

java中编码和解码的问题

字符编码Java字符编码详细解答及问题探讨

Java FileReader 编码问题

JAVA几种常见的编码格式(转)

深入分析 Java 中的中文编码问题