为什么Java有很多重复方法?
|
我正在使用Java,因为我打算从C#切换到Java,以实现跨平台的目的。我刚刚注意到,它有很多可以完成相同操作的方法。我只想知道他们为什么这样做?
例如,除了构造函数也执行相同的操作之外,布尔类还具有两个执行相同操作的方法。
Boolean b = new Boolean(true);
Boolean b = new Boolean(\"true\");
Boolean b = Boolean.parseBoolean(true);
Boolean b = Boolean.parseBoolean(\"true\");
Boolean b = Boolean.valueOf(true);
Boolean b = Boolean.valueOf(\"true\");
我可以通过仅调用变量本身(b)或方法b.booleanValue()来获得布尔值。任何人都想调用一个获取布尔值的布尔值的方法,尽管他只能调用变量本身吗?
有什么意义呢?
没有找到相关结果
已邀请:
8 个回复
草票
真的是错误。您正在创建原始布尔值,然后自动装箱为布尔值。 您应该改用valueOf(true)或valueOf(\“ true \”)。 因此,这些方法的真正用途是
**不要使用它,因为您只是在不必要地创建对象。使用valueOf允许重用现有的布尔对象。由于布尔值是不可变的,所以很好。
烷刨画颠离
有时您需要将String解析为布尔值
有时您不需要创建新对象。最好避免使用
有时您需要布尔对象而不是原始的
这些不是相同的需求。
磁辫覆氓
和
之间的差异,它们并不是真正的重复方法/构造函数。
表示Java中的原始类型
,而\“ true \”表示具有值\“ true \”的
对象。
渐首洽陈染
呢率篓舍烫
财沟项胶
会给出语法错误(至少根据Java 6 API)。
和
是不同的函数,因为
将创建一个新对象,而
返回一个存储的布尔对象。
的签名返回原始布尔值。在Java 5之前,您需要ѭ19才能将其转换为对象形式。在Java 5之后,系统将自动执行此操作,但是(a)Java决定要使用自动装箱的显式形式(并因此添加
等),并且(b)即使已过时,也永远不会删除Java方法。在许多情况下,它本身就是重复的来源(例如,当它们在Java 2中重新组织了集合,但是旧的集合类中添加了与新系统匹配的方法时,会导致重复)。
盛梯獭八搽
嫩昧竞莫
。该列表实际上是:
(4)对于(1)是多余的,而(5)对于(2)是多余的。除了两个是构造函数,两个是方法。我怀疑从方法而不是从构造函数获得该功能可能对某些东西(工厂?)有用。 java.lang.Boolean