Открытый конструктор, который создает экземпляр массива имен с параметром размера

Я получил сообщение об ошибке, в котором говорится, что невозможно преобразовать из String в int в строке 5. Вопрос требует, чтобы я создал экземпляр массива имен с параметром размера. Как мне это исправить?

class ProgClass{
private String name[];

public ProgClass(int size){
   this.name = new int[size];
}

Затем я хотел выполнить поиск по индексу, запросив ввод данных пользователем:

int cnt = cnt.nextInt
System.out.println("Name "+cnt+" is " + name[cnt-1]);

есть ли способ сделать это?

new String[size]
Eran 08.11.2018 15:14

Какую часть ошибки вы не понимаете?

SLaks 08.11.2018 15:14

Вы делаете String[] name = new int[size]. Ты видишь проблему?

Guy 08.11.2018 15:15

А простой опечатка? Должен быть this.name = new String[size]; (обратите внимание на String вместо int)

Dmitry Bychenko 08.11.2018 15:15

А) Я обновил свой ответ. Теперь. Но, пожалуйста, не впадайте в пинг-понг «тогда давайте зададим еще один вопрос». Вы задали вопрос, вы получили ответ, поэтому, пожалуйста, рассмотрите принимать как один из ответов. Б) на вашей стороне есть заблуждение: это сообщество - не репетиторская служба, где вы постоянно задаете вопросы, на которые можно легко ответить, следуя хорошим книгам или руководствам. Итак, пожалуйста: также обратитесь к центр помощи, чтобы узнать, как / что спросить здесь.

GhostCat 08.11.2018 16:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
5
43
3

Ответы 3

Сообщение должно быть ясным: массив строк не является массивом int.

this.name = new String[size];  

это то, что вам нужно. Вам нужен параметр "int", поскольку вы хотите передать размер в new String[], но все же ваша цель - создать массив для строк, а не для целых чисел!

Во второй части проявляется ваша настоящая проблема: вы что-то изобретаете. int cnt = cnt.nextInt не имеет смысла.

Думаю, вы имели в виду что-то вроде:

Scanner reader = new Scanner(System.in);
System.out.print("Enter an integer followed by <enter>: ");
int i = reader.readInt();

Вы объявили его как массив String, но затем назначили его новому массиву int.

this.name = new String[size];  

Мне это кажется опечаткой. Но проблема возникает из-за того, что параметр размера - это целочисленный размер, который вы хотите, чтобы массив String был. Но он был закодирован как, сделайте мой массив String теперь равным новому массиву int, который имеет размер, который я передал в метод. Это не то, что вам нужно.

Вы пытаетесь создать экземпляр массива String? В строке 5 вы пытаетесь присвоить this.name как массив целых чисел размера «size».

Если вы измените эту строку на

this.name = новая строка [размер];

Это сработает. Однако отдельные записи все равно будут нулевыми.

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