#java
#java
Вопрос:
Что set
означает в этой строке кода?
List<SimpleGrantedAuthority> authorities = set = new ArrayList<>();
Я пытался выяснить, что это значит, но пока безуспешно.
Комментарии:
1. Есть ли у вас где-нибудь определенный набор?
2. В Java вы можете выполнять несколько назначений одновременно, например
a = b = c = 5;
, я предполагаю, чтоset
этоList<SimpleGrantedAuthority>
то, что определено в другом месте.3. Существует ли ArrayList
set
, объявленный ранее в коде?
Ответ №1:
По сути, это цепное присвоение. a = b
принимает значение b
, и =
является правильным ассоциативным, поэтому код эквивалентен:
List<SimpleGrantedAuthority> authorities = (set = new ArrayList<>());
что эквивалентно:
set = new ArrayList<>();
List<SimpleGrantedAuthority> authorities = set;
Обратите внимание, что для того, чтобы это сработало, set
оно должно быть предварительно объявлено с правильным типом.
Комментарии:
1. Другой способ сказать это заключается в том, что оператор присваивания имеет возвращаемое значение, а именно присвоенное значение.
2. Хотя я полностью согласен с ответом, я должен сказать, что называть
ArrayList
asset
в Java — это садизм.