Shi*_*ang 13 java duplicates primitive-types
我正在玩Java,因为我打算从C#切换到它以用于跨平台目的.我刚刚注意到它有很多方法可以做同样的事情.我只是想知道他们为什么那样做?
例如,除了构造函数之外,Boolean类还有两个方法执行相同的操作.
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");
Run Code Online (Sandbox Code Playgroud)
我可以通过调用变量本身(b)或方法b.booleanValue()来获取布尔值.有人想要调用一个方法来获取布尔值的布尔值,尽管他可以自己调用变量吗?
有什么意义?
MeB*_*Guy 30
new Boolean(true)和Boolean.valueOf(true)返回Boxed基元...可以在原始布尔值的集合等中使用的真实对象.
Boolean.parseBoolean("true")返回原始布尔值.
顺便说一句,
Boolean b = Boolean.parseBoolean(true);
Boolean b = Boolean.parseBoolean("true");
Run Code Online (Sandbox Code Playgroud)
真的是错误.您正在创建一个原始布尔值,然后自动装箱到布尔值.
您应该使用valueOf(true)或valueOf("true")代替.
所以这些方法的真正用途是
Boolean b = new Boolean(true); //really this should never be used **
Boolean b = new Boolean("true"); //really this should never be used **
boolean b = Boolean.parseBoolean(true);
boolean b = Boolean.parseBoolean("true");
Boolean b = Boolean.valueOf(true);
Boolean b = Boolean.valueOf("true");
Run Code Online (Sandbox Code Playgroud)
**不要使用它,因为你只是不必要地创建对象.使用valueOf允许重用现有的Boolean对象.由于布尔是不变的,这很好.
Boolean.parseBoolean(*String*)Boolean.valueOf(*String*)newBoolean.valueOf(*boolean*) 这些都是不一样的需要.
| 归档时间: |
|
| 查看次数: |
6500 次 |
| 最近记录: |