Ошибка при вызове моего метода массива в Java (простой вопрос) [дубликат]

avatar
Drunkasaurus
9 августа 2021 в 03:19
94
2
0

Я уверен, что это глупо, я просто учусь кодировать и пытаюсь следовать инструкциям о том, как сделать этот метод, который умножает двойные числа в массив. Код компилируется, но не возвращает мой массив, он просто дает мне [D@76ed5528, который, как я предполагаю, является адресом памяти массива?

public class Ex1 {
    
    public static void main(String[] args) {
        Ex1 exone = new Ex1();
   
        double[] bob = exone.square(2, 6, 9, 8);
        System.out.println(bob);
    }
 
    public double[] square(int a, int b, int c, int d) { 
        double[] result = {a*a, b*b, c*c, d*d}; 
        return result; 
    }
}
Источник
Stephen C
9 августа 2021 в 04:35
0

Ваша проблема (как вы ее задумали) заключается в возвращении массива, а не в "вызове" его. Если вы используете неправильные слова, вы не сможете найти осмысленные ответы при поиске. И вы всегда должны искать, прежде чем спрашивать. Но оказывается, что настоящая проблема заключается в том, как вы печатаете массив.

Ответы (2)

avatar
avonbied
9 августа 2021 в 03:33
1

Да, @Drunkasaurus, [D@76ed5528, о котором вы упомянули, действительно является хешем для массива в памяти. Чтобы напечатать значения в вашем массиве, у вас есть несколько вариантов, включая:

  1. Использование метода Arrays.toString(): https://coderhelper.com/a/29140403/10152919
  2. Использование простого цикла: https://coderhelper.com/a/409795/10152919

Кроме того, ни один вопрос не является глупым вопросом, если вы можете извлечь из него урок ????

avatar
Sakshi Aggarwal
9 августа 2021 в 03:26
0

Это потому, что вы пытаетесь напрямую вернуть массив результатов. Попробуйте перебрать массив.

Для бывшего - https://www.geeksforgeeks.org/iterating-arrays-java/