Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Доступ к элементам класса в ArrayList / 4 сообщений из 4, страница 1 из 1
16.07.2017, 18:00
    #39489766
Molasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к элементам класса в ArrayList
Всем привет!

Как получить доступ к элементам -name- и -color- класса -MyObject- в функции -showBasket-?
В этом коде доступа нет, но из -main- доступ есть.

package genericsuper3;

import java.util.ArrayList;
import java.util.List;

public class GenericSuper3 {

public static <T> void showBasket(List<T> basket) {
basket.forEach((T obj) -> {
System.out.println(obj.??????);
});
}

public static void main(String[] args) {

List<MyObject> MyObjectList1 = new ArrayList();

MyObjectList1.add(new MyObject());
MyObjectList1.add(new MyObject("MyObject1","Black"));
MyObjectList1.add(new MyObject("MyObject2","Blue"));

showBasket(MyObjectList1);
}
}

class MyObject {
String name, color;

MyObject() {
this.name = "Unnamed";
this.color = "Uncolored";
}

MyObject(String name, String color) {
this.name = name;
this.color = color;
}
}
...
Рейтинг: 0 / 0
17.07.2017, 07:31
    #39489923
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к элементам класса в ArrayList
Molasar,

Код: java
1.
public class MyObject
...
Рейтинг: 0 / 0
17.07.2017, 10:28
    #39489988
Konst_eprst
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к элементам класса в ArrayList
Molasar,
showBasket не знает про то, какого типа объекты в листе.
Либо obj надо явно приводить к MyObject, либо менять объявление showBasket на что-то вроде
Код: java
1.
public static void showBasket(List<? extends MyObject> basket) {
...
Рейтинг: 0 / 0
17.07.2017, 12:05
    #39490068
Partisan M
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к элементам класса в ArrayList
MolasarSystem.out.println(obj.??????);

В классе MyObject переопределить метод toString, например:

public String toString () {
return "name:" + name + " color:" + color; //форма вывода содержимого объекта - произвольная
}

после чего можно будет писать:

System.out.println(obj.toString());

или даже

System.out.println(obj);
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Доступ к элементам класса в ArrayList / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]