借有“关于Char[]并不是String的讨论”比较eclipse与jbuilder

我baidu博客的链接

 

问题的引出:


参考文献:Java Puzzlers -〉Chapter 3. Puzzlers with Character -〉Puzzle 12: ABC


例程:

public class Abc {
    public static void main(String[] args) {
        String letters = "ABC";
        char[] numbers = { '1', '2', '3' };
        System.out.println(letters + " easy as " + numbers);
    }
}


输出: ABC easy as [C@16f0472 而不是  ABC easy as 123


原因:字符串连接的时候,首先调用相应的toString()方法转换成String,char[]的 toString方法继承自Object。  另: 之所以我们println()的时候char[]表现的正常,是因为里面out里面提供了一个 char[]的重载版本,同样,String.valueOf()中也有char[]的重载版本。


解决办法:所以解决办法是做一个显示的转换,将char[]转换成String,或者将println拆行,或者调用String.valueOf(),具体做法见原书



但其实我写这个问题真正想说的是下面两点:


01.关于eclipse与jbuilder的一个比较。

将上述代码录入eclipse,eclipse会产生警告信息:必须显式地将 char[] 转换为字符串; 但是录入jbuilder不会有相应的提示。


因为在开始搞java的时候还没有eclipse,所以其实我是一直使用jbuilder过来的,后来 也用IBM Rational software Architecture,因为开发web是eclipse上有很多好用的插件开始使用 eclipse,但一直觉得eclipse不如jbuilder的强大,觉得eclipse的很多插件bug多,通过这件事,原来IDE也真如语言一样各 有所长。 没有任何东西在任何方面都领先对手的。人也一样,有强人,无恒强人。


02.另一个教训就是大师们一直强调的:不要忽略编译器的警告.

你可能感兴趣的:(eclipse,Web,IBM,ide,JBuilder)