Открытый конструктор, который создает экземпляр массива имени с параметром размера - PullRequest
0 голосов
/ 08 ноября 2018

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

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]);

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

Ответы [ 3 ]

0 голосов
/ 08 ноября 2018

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

this.name = new String[size];  

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

0 голосов
/ 08 ноября 2018

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

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

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

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

0 голосов
/ 08 ноября 2018

Сообщение должно быть четким: массив строк не является массивом типа 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...