2016-09-12 6 views
0

После добавления вложенного сообщения я получаю вложенные сообщения из основного сообщения и ничего не получаю.Как добавить вложенное сообщение в уже созданное сообщение? (в Scala)

Вы можете увидеть это в журналах: 1 и 2. Размер списка 0!

Любые идеи?

message PacketPlayers 
{ 
    repeated PacketPlayer players = 1; 
} 

enter image description here

+0

- это ваш PacketPlayers.players измененный или неизменный список? – Samar

+0

@Samar неизменен seq по умолчанию, не может измениться –

+0

Является ли PacketPlayers.players val или var, вы можете показать код для вашего класса PacketPlayers? Кроме того, это лучше, если вы вставляете свой код вместо вставки png. Вы получите больше ответов. – Samar

ответ

1

ScalaPB тематические классы неизменны. В вашем примере addPlayers не будет изменять экземпляр, на который он вызван, но возвращает новый экземпляр PacketPlayer, в котором есть дополнительные игроки.

В конструкции нового объекта можно избежать использования изменяемых массивов и варов. Например:

val players = onlinePlayers.keySet.map(makePacketPlayer) 
val packetPlayers = PacketPlayers().withPlayers(players) 
+0

большое вам спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^