как напечатать массив в подклассе, который назначен в основном классе, без какого-либо импорта

#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;
}