valueof
和copyvalueof
之间的区别是什么。我查看了GrepCode,却发现两者返回的是完全相同的东西。
CopyValueOf:
参数:数据字符数组。
返回:包含字符数组的字符的字符串。
公共静态字符串copyValueOf(char data[]){return new String(data);}
值:
返回char数组参数的字符串表示形式。复制字符数组的内容;字符数组的后续修改不会影响返回的字符串。
参数:数据字符数组。
返回:包含字符数组的字符的字符串。
public static String valueOf(char data[]){return new String(data);}
如果两者都做同样的事情,那为什么一个不被否决呢?
正如其他人所指出的:
CopyValueOf
则清楚地将读者指向(温和地)首选的ValueOf
方法。唯一的另一个问题是为什么没有一个注释来标记一个方法为“out of date”。我认为对此的答案是,如果您使用的API方法已经过时,这并不重要。当然,对Java团队来说,实现这样一个机制并不重要……然后花很多时间来决定这样一个API是否“过时”到需要标记等等。
(大多数人不希望Java团队把时间浪费在这样的事情上。我们更希望他们把时间花在对Java的改进上,这将对程序性能和程序员生产力产生真正的影响。)
处理这个问题的一个更合适的方法是编写或增强第三方的样式检查器或bug检查器工具来标记(所谓的)过时方法的使用。这显然不是Oracle的问题,但如果您(亲爱的读者)真的关心这一点,您可以将其作为您的问题。