Не удается разрешить метод readAllBytes () - PullRequest
0 голосов
/ 19 января 2019

Что я делаю

Я пытаюсь создать приложение java.net, где клиент и сервер должны отправлять данные друг другу через сериализованные типы коллекций как byte[].

* 1005.* Что я пытаюсь сделать

По неизвестной причине мой DataInputStream не может разрешить метод readAllBytes().

Друг бросил его в свою IDE, и он не жаловался.Я не уверен, как это могло быть проблемой версии, но я проверил, и я не неправильно настроил свой проект.Я использую Java 8.

  public void startClient() {
        try {
            Socket client = new Socket("localhost", 7000);
            DataOutputStream out = new DataOutputStream(client.getOutputStream());
            out.writeUTF("Hi i'm " + client.getLocalSocketAddress());
            DataInputStream input = new DataInputStream(client.getInputStream());
            byte[] sent = input.readAllBytes(); //"can't resolve method 'readAllBytes()'
            getDataFromClient(input.readAllByes());
//"can't resolve method 'readAllBytes()'
            client.close();


        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

enter image description here

На самом деле я уверен, что этот метод должен поддерживаться, но я не могу понять, почемуэто не так Он указан как метод, унаследованный от Input Stream в Документах Oracles .

Это также проект Gradle, и для полноты, это build.gradle:

plugins {
    id 'java'
    id 'application'
}

sourceSets {
    main {
        resources {
            srcDirs = ["src/main/java"]
            includes = ["**/*.fxml","**/*.png"]
        }
    }
}

group 'prog3'
version '0.1'
mainClassName='Client'

sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
    testCompile group: 'org.mockito', name: 'mockito-core', version: '2.1.0'
}

Редактировать: Получается согласно ответам, Java 8 было недостаточно, и я должен был использовать Java 9. Классический вопрос RTFM.

1 Ответ

0 голосов
/ 19 января 2019

Согласно InputStream.readAllBytes() методу javadoc этот метод был введен в Java 9.

Так как:

9

Это не будет работать, когда код скомпилирован или имеет более низкую версию Java, в вашем случае Java 8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...