Если у меня есть 3 класса, называемые CPU, GPU, RAM, и я сохранил эти классы в arrayylist ArrayList<Object> stock = new ArrayList<>(), какой метод вы можете использовать, чтобы вернуть, какой класс хранится в определенном индексе. Например

stock = new ArrayList<>;
stock.add(new CPU());
stock.add(new GPU());
//method to determine which class is in index 0 
System.out.println(method);
Output: class packageName.CPU
0
PreshenGovender 18 Сен 2021 в 04:42

2 ответа

Лучший ответ

Только первый элемент

Вы можете просто получить элемент 0, затем класс и, наконец, его имя.

ArrayList<Object> stock = new ArrayList<>();

class CPU{};
class GPU{};

stock.add(new CPU());
stock.add(new GPU());

System.out.println(stock.get(0).getClass().getName());

И результат - то, что вы хотите:

com.example.example.model.CPU

Все элементы

Если вам нужны все классы, просто добавьте в процесс foreach:

stock.forEach(i -> {
    System.out.println(i.getClass().getName());
});

com.example.example.model.CPU

com.example.example.model.GPU

1
Andrea Giannoni 18 Сен 2021 в 02:06

Используйте stock.get(index).getClass(), как указывает markspace, это ужасная практика, лучше иметь базовый интерфейс.

0
Rohan Sampat 18 Сен 2021 в 02:00