#java
#java
Вопрос:
например
public class Main
{
public static void main(String[] args) {
int[] arr = new int[args.length];
for (int i = 0; i < args.length; i )
{
arr[i] = Integer.parseInt(args[i]);
}
printarr pp = new printarr();
pp.pnt(arr);
}
}
public class printarr{
public int pnt(int[] arr){
for(int i=0;i<arr.length;i ){
System.out.println( arr[i]);
}
return arr;
}
}
я не знаю, но что-то не так, пожалуйста, помогите мне
когда я его компилирую, он выдает
printarr.java:6: ошибка: несовместимые типы: int[] не может быть преобразован в int
возвращает arr;
^
1 ошибка
Комментарии:
1. 1. Почему вы отметили
python
? 2. Что вам непонятно в сообщении об ошибке? Там четко сказано, чтоint[]
не может быть преобразован вint
.2. Я настоятельно рекомендую ознакомиться с руководством или книгой по Java. Вы будете учиться очень медленно, если каждый раз, когда у вас возникает небольшая заминка, вы будете задавать вопрос онлайн.
Ответ №1:
Вы возвращаете массив arr
в pnt()
методе, но возвращаемый тип вашего pnt()
метода — int . Либо верните целое число, либо измените возвращаемый тип на int[] . Или измените его на void и ничего не возвращайте, вам действительно не нужно.
Ответ №2:
arr
является int[]
, а не int
. Вы могли бы изменить возвращаемый тип pnt
на int[]
, но, честно говоря, вам это на самом деле не нужно, и вы можете просто изменить возвращаемый тип void
и вообще опустить return
оператор:
public void pnt(int[] arr){
for(int i=0;i<arr.length;i ){
System.out.println( arr[i]);
}
}
Ответ №3:
Не требуется создавать новый класс только для печати массива. Вот пример с static void
методом.
public static void print(int[] arr) {
for (int i = 0; i < arr.length; i ) {
System.out.println( arr[i]);
}
}
Я бы пошел даже с более простым способом сделать это:
System.out.println(Arrays.toString(arr));
Комментарии:
1. если бы я мог, я бы сделал, если бы основной класс был предварительно исправлен в курсе, которому я следую, и его нельзя редактировать, поэтому у меня есть только контроль над подклассом
Ответ №4:
Ваш возвращаемый тип — int, но вы возвращаете массив int Попробуйте это
public int[] pnt(int[] arr){
for(int i=0;i<arr.length;i ){
System.out.println( arr[i]);
}
return arr;
}