почему java / android позволяет поразрядно & между логической переменной и строкой - PullRequest
0 голосов
/ 16 августа 2011

Мне разрешено делать битовую переменную между логической переменной и строкой. Ошибка компиляции отсутствует!

Каков будет результат? Как это работает. Насколько я понимаю, он не должен допускать побитовую операцию такого типа. Это ошибка или побитовая функция, которая думает только о битах и ​​не заботится о типе?

1 Ответ

1 голос
/ 16 августа 2011

Можно ввести bitwise & символов, но не строки.Пример:

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
...