2014-11-03 1 views
0

Мне нужно выполнить итерацию по связям с сохраненными клиентами (на стороне сервера) и отправить их сообщениям (как один человек пишет сообщение - другие подключенные должны видеть его тоже).PrintWriter и LinkedList

Я пытался сделать это:

for (PrintWriter out : connections) { 
    out.println(message); 
    out.flush(); 
} 

connections является

LinkedList connections = new LinkedList(); 

Но для цикла for я получаю следующее сообщение об ошибке:

Type mismatch: cannot convert from element type Object to PrintWriter. 

Может кто-нибудь мне помочь или предложить другая идея, как это сделать. Благодарю.

+0

, какой тип значений, которые вы хотите хранить в объекте LinkedList – AsSiDe

+0

Связанный список только коллекция, вы должны сказать ему типа, как то, как вы говорите, 'INT [ ] ', массив целочисленного типа, аналогично дайте LinkedList параметр типа, например' LinkedList ', или 'LinkedList ' в вашем случае –

ответ

1
LinkedList connections = new LinkedList(); 

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

LinkedList<PrintWriter> connections = new LinkedList<>(); 
0

Вместо

LinkedList connections = new LinkedList(); 

использования

LinkedList<PrintWriter> connections = new LinkedList<PrintWriter>(); 

. Это гарантирует, что вы можете поместить только PrintWriter s в список, а при взятии объектов из списка компилятор уверен, что выведенный объект - это PrintWriter, и проблем больше не будет.