Я пытаюсь передать массив String, но я все еще не могу его правильно

Я пытаюсь отобразить массив из класса Taxi, используя класс Place без "extends".

public class Testing {

 public static void main(String[] args) {

 //creating obj of Taxi
 Taxi objTaxi = new Taxi(); 

 //creating obj of Place
 Place objPlace = new Place();
 objPlace.displaySomething(objTaxi);
 }
}

class Taxi {

 String[] aaa = {"aaa", "bbb", "ccc"};

 //public String getAAA() {

 // return aaa;
 //}
}

class Place {

 public void displaySomething(Taxi aaa) { //initialize obj of Taxi

Я объявил массив типа String для хранения данных из obj-отправки этому методу. Но это дало мне ошибку, говоря, что "несовместимый тип" "required = String []" "found Taxi".

String[] array = aaa; //Cannot assign array in aaa to the array.

 //print all info in the array
 for(int i = 0; i < array.length; i++) {

 System.out.println(array[i]);
 }

 //System.out.println("string from Taxi : " + aaa.getAAA());
 }
}
3 ответа

ваш aaa который вы передаете методу displaySomething является экземпляром Taxi, поэтому вы не можете назначить его массиву строк.

позволяет немного изменить код

class Taxi {
 String[] strings = {"aaa", "bbb", "ccc"};
 public String[] getStrings(){
 return strings
 }
}

class Place {

 public void displaySomething(Taxi taxi) {

 String[] array = taxi.getStrings();

 for(int i = 0; i < array.length; i++) {

 System.out.println(array[i]);
 }

 }
}


Вы передаете объект "Такси", а затем назначьте объект Taxi массиву String []. Возможно, попробуйте сделать метод getArray внутри Taxi, который включает цикл, который вы помещаете внутри класса Place, а затем внутри Place call aaa.getArray, который, в свою очередь, распечатает массив.


String[] array = aaa;

aaa - объект Taxi, поэтому нет смысла устанавливать объект String [] для объекта Taxi. Вы хотите:

String[] array = aaa.aaa;

licensed under cc by-sa 3.0 with attribution.