Проблема с InputStreamConstructor

Пытался собрать данные из розетки. Для этого я закодировал:

  InputStream i = socket.getInputStream();
  InputStreamReader rawAnswer= InputStreamReader(i);  

Но произошла ошибка (я использую Eclipse как IDE): «Метод InputStreamReader (InputStream) не определен». Однако в документации сказано, что конструктор существует. Затем я попытался создать InputStreamReader из FileInputStream, и он отлично сработал. Я что-нибудь упускаю?

Этот вопрос был вызван проблемой, которую невозможно воспроизвести, или простой опечаткой. Хотя подобные вопросы могут быть здесь по теме, этот был решен таким образом, который вряд ли поможет будущим читателям. Этого часто можно избежать, определив и внимательно изучив самую короткую программу, необходимую для воспроизведения проблемы, перед публикацией.

Naman 28.12.2018 18:53

Вам нужно использовать new для вызова конструктора.

Peter Lawrey 28.12.2018 19:04
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
17
1

Ответы 1

new!

InputStreamReader rawAnswer= new InputStreamReader(i);  
                          // ^^^

В противном случае вы просто пытаетесь вызвать метод с необычным начальным ограничением.

Другая распространенная ошибка - попытаться объявить конструктор, но добавить возвращаемый тип void, создав таким образом метод с начальным ограничением. (Как ни странно, в конструкторах байтового кода есть возвращаемые типы void, но они называются <init>.)

Думаю, я устал ... Спасибо!

AlainSisyphe 28.12.2018 18:55

@AlainSisyphe Это частая ошибка. Теперь вы должны распознать проблему, и когда она повторится, вы сможете решить, как исправить ее самостоятельно за доли секунды.

Tom Hawtin - tackline 28.12.2018 18:57

Другие вопросы по теме