java string copyvalueof_Java:valueOf vs copyValueOf

valueOf和copyValueOf有什么区别.我看了GrepCode,却发现两者都返回完全相同的东西.

copyValueOf:

Parameters:

data the character array.

Returns:

a String that contains the characters of the character array.

public static String copyValueOf(char data[]) {

return new String(data);

}

的价值:

Returns the string representation of the char array argument. The contents of the character array are copied; subsequent modification of the character array does not affect the returned string.

Parameters: data the character array.

Returns:

a String that contains the characters of the character array.

public static String valueOf(char data[]) {

return new String(data);

}

所以,如果两者都做同样的事情,那么为什么一个人不被弃用呢?

解决方法:

正如其他人指出的那样:

>这两种方法是等价的.

> javadocs明确指出这两种方法是等价的.并且copyValueOf清楚地将读者指向(温和)首选的valueOf方法.

>两个版本之间没有性能差异.实现是相同的.

>弃用一种或另一种方法会适得其反,因为它会促使人们“修复”未破坏的代码.这(可以说)是浪费时间,它会惹恼很多人.

>删除一种或其他方法会破坏向后兼容性……没有充分的理由.这真的会让很多人烦恼.

唯一的另一个问题是为什么没有注释将方法标记为“过时”.我认为答案就是如果你使用过时的API方法并不重要.当然,Java团队实现这样的机制并不重要……然后花费大量时间来判断这样一个API是否“过时”以保证标记等等.人们不希望Java团队在这些事情上浪费时间.我们希望他们花时间来实现对Java的改进,这实际上会带来真正的改变.)

处理此问题的更合适的方法是,有人可以增强第三方某些样式检查器或错误检查工具来标记(所谓的)过时方法的使用.这显然不是甲骨文的问题……但是如果你(@StarCoder)真正关心这个问题,你可以把它变成你的问题.

标签:java,string,value-of

来源: https://codeday.me/bug/20190522/1153326.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值