Это не может быть выведено. Он использует приведение - return (T)
. Вызывающая сторона отвечает за то, чтобы тип T соответствовал типу отображаемого вида. Если они поймут это неправильно, операция завершится неудачей с ClassCastException
.
Тип может быть указан явно, т.е.
this.<TextView>findViewById(R.id.someTextView)
(извините за мой синтаксис, если я ошибся - я в основном имею дело с Kotlin)
или он может быть выведен из пункта назначения:
TextView foundView = findViewById(R.id.someTextView)
, но в любом случае ответственность лежит на звонящем.
Инструментарий Android может выполнять дальнейшую работу по перекрестной ссылке на компоновку XML с кодом и создавать предупреждения или сбои в вашей IDE, но это уровень времени компиляции поверх того, что Java выполняет во время выполнения.
Это не имеет ничего общего с аннотацией @IdRes
, которая должна утверждать - снова во время компиляции - что параметр id
является ссылкой на идентификатор некоторой сущности на основе XML, а не просто любое целое число значение.
Возможно, вам стоит изучить XMPP и BOSH. Очень похоже на комету и ejabberd в сочетании с nginx может поддерживать тысячи соединений на очень маленьком ящике.
Взгляните на один из моих проектов www.vooices.us , чтобы увидеть, что мы сделали с XMPP и BOSH.
http://github.com/ssoper/jquery-bosh/tree/master JQueryBosh - для обеспечения быстрого и легкого доступа к XMPP через HTTP
Его относительно легко настроить и установить.
Paul.
Похоже, что Comet, вероятно, ссылается на некоторые полезные вещи (посмотрите в Google GTalk):
Нет никакого способа чтобы сервер отправлял информацию клиенту, но вы всегда можете использовать Comet . Да, вы бы опрашивали сервер, но не постоянно. Вы должны держать каждое соединение открытым около 30 секунд (это интервал, который я всегда видел), а затем открывать новое соединение, когда это необходимо.
РЕДАКТИРОВАТЬ: Adobe Flash разрешает постоянные подключения к серверу, поэтому вы мог бы использовать это. Подробнее см. в этой статье .