我被允許在布爾變量和一個字符串之間執行按位&。 沒有編譯錯誤!爲什麼java/android允許在一個布爾變量和一個字符串之間進行按位&佈局
結果會是什麼?它是如何工作的。根據我的理解,它不應該允許這種類型的按位操作。 它是一個錯誤或按位功能認爲只有位的interms和不關心類型?
我被允許在布爾變量和一個字符串之間執行按位&。 沒有編譯錯誤!爲什麼java/android允許在一個布爾變量和一個字符串之間進行按位&佈局
結果會是什麼?它是如何工作的。根據我的理解,它不應該允許這種類型的按位操作。 它是一個錯誤或按位功能認爲只有位的interms和不關心類型?
字符可以是bitwise &
,但不能是字符串。 Exapmle:
public class BitwiseTest {
public static void main(String[] args) {
System.out.println(Integer.toBinaryString(0));
System.out.println(Integer.toBinaryString(1));
System.out.println(Integer.toBinaryString(2));
System.out.println(Integer.toBinaryString(1&2));
System.out.println(Integer.toBinaryString(1&'2'));
}
}
打印...
0
1
10
11
110011
,而這並不編譯:
System.out.println(Integer.toBinaryString(1&"my String"));
編譯器輸出:
$ javac BitwiseTest.java
BitwiseTest.java:10: operator & cannot be applied to int,java.lang.String
System.out.println(Integer.toBinaryString(1&"my String"));
^
1 error
感謝您的回答。它回答了我的問題。我會自己檢查一下布爾值。 –
對於布爾值,它非常簡單:true評估爲1,false爲0.但仍然令人困惑...... –
我明白了。其短路和非短路操作..謝謝分配。 –
一個例子會有所幫助。 – skaffman
你有沒有試過看出你的假設是否屬實? –
請顯示一些代碼!這不可能! – adarshr