Использование += в троичном выражении Java [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Использование += в троичном выражении Java [закрыто]

Сообщение Anonymous »

Я пытаюсь использовать универсальный тип с тернарным выражением для выполнения выражений, которые не возвращают значение. Вот мой класс:

Код: Выделить всё

  static class Generic {
T t;
}

public static Generic generic = new Generic();
Я выполняю простую команду. Компилятор Java не выдает никаких ошибок для my_a += 1, но запрещает my_b += 1.

Код: Выделить всё

generic.t = X ? my_a += 1 : my_b += 1;
Мой вопрос: почему нельзя использовать второе выражение?
По большей части это экспериментальный фрагмент кода. Я просто пытаюсь понять, как троичный код работает в Java и почему я не могу использовать += в my_b += 1 .
code:

Код: Выделить всё

bool X = true;
int my_a = 0;
int my_b = 0;
generic.t = X ? my_a += 1 : my_b += 1;
Исключение:

Код: Выделить всё

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Syntax error on token "+=", + expected
Изменение my_b += 1; на my_b++ успешно компилирует и выполняет код. Я ожидал, что код будет выполнен с my_b += 1;, поскольку универсальный тип предназначен для совместимости с различными типами данных.

Подробнее здесь: https://stackoverflow.com/questions/786 ... expression
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»