首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么不推荐使用isJavaLetterOrDigit?

为什么不推荐使用isJavaLetterOrDigit?
EN

Stack Overflow用户
提问于 2013-04-28 10:40:41
回答 2查看 452关注 0票数 5

为什么java.lang.Character中的isJavaLetterOrDigit方法被弃用?

文档说应该使用isJavaIdentifierPart方法,但没有说明原因。这两种方法的文档在其他方面是相同的。在谷歌上搜索这个话题并没有找到任何解释。

事实上,源代码搜索显示,如今,一方只调用另一方,因此行为没有区别。它只是因为它有一个更容易混淆的名字而被弃用吗?这似乎是一个相当奇怪的决定。

代码语言:javascript
运行
复制
@Deprecated
public static boolean isJavaLetterOrDigit(char ch) {
    return isJavaIdentifierPart(ch);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-28 10:49:32

旧的(不推荐使用的)名称不能正确反映实现的实际功能;例如,它接受既不是字母也不是数字的字符。我想这会导致一些"bug“报告和来自困惑的开发人员的支持请求。IMO,这可能是他们采取(重要)步骤创建新方法并弃用旧方法的原因。

( @HuiZheng提出的其他原因在智力层面上是有效的,但不足以证明弃用一种方法。Java人员不会纯粹基于良好的API设计原则来更改API。弃用方法为开发人员提供了工作,Oracle不想疏远那些为这些程序员支付工资的公司。Java在企业世界中获得了如此多的吸引力,因为它是一个稳定的平台!)

无论如何,(在我看来)弃用这个方法似乎是一个显而易见的、明智的API设计决策,它是基于正确的理由做出的。无论哪种方式,我们的观点都没有实际意义。

票数 5
EN

Stack Overflow用户

发布于 2013-04-28 11:08:22

原因1:

一个好的API名称应该足够抽象(但不要太抽象)。isJavaLetterOrDigit过于面向实现。如果这是你真正想要的,那就改用isLetterOrDigit吧。

原因2:

一个好的API名称应该准确地指定其用途,并且应该正确实现。isJavaLetterOrDigit用词不当,因为它实际上允许非字母或数字字符,如"_“或"$”。

原因3:

一个好的API名称应该与其他名称和谐一致。isJavaIdentifierPartisJavaIdentifierStartisUnicodeIdentifierPartisIdentifierIgnorable等其他接口一致。

最后,仅仅因为这两个API在行为上没有区别并不意味着它们是相同的。误导性的API名称毒害了您的代码。此外,务必尽快转储已弃用的API,因为它们最终(或极有可能)会被库提供商转储。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16258997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档