为什么Boolean.getBoolean似乎永远不会返回true

时间:2016-05-13 14:56:02

标签: java

基于java doc,我对此没有合理的解释。有什么想法吗?

Boolean.getBoolean(Boolean.TRUE.toString()) == false 

亲自看看: https://ideone.com/rKa2dS

在Java Doc中我没有告诉我为什么 https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html#getBoolean-java.lang.String-

1 个答案:

答案 0 :(得分:8)

在您链接的文档中:

  

当且仅当参数命名的系统属性存在并且等于字符串“true”时,才返回true。

请注意重点。因此,如果存在名为Boolean.getBoolean("foo")且值为true的系统属性,则foo会返回"true";如果没有其他值,则false会返回boolean

如果您想要字符串的布尔值,请使用Boolean.parseBoolean(String)(如果您需要Boolean)或Boolean.valueOf(String)(如果您想要@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fm = getSupportFragmentManager(); Fragment_Main main = new Fragment_Main(); fm.beginTransaction() .replace(R.id.mainContainer, main) .commit(); /* Fragment_Main is a fragment with two buttons * to either call fragment A or fragment B and * mainContainer is a FrameLayout occupying the whole screen */ } )。