Что такое List <?> В Java (Android)?

Возможный дубликат:
Что называется Type <Type>?
Что означает список <?> В java generics?

package com.xyz.pckgeName; import java.util.ArrayList; import java.util.List; public class Statement { // public String public String status; public String user_id; public String name; public String available_balance; public String current_balance; public String credit_card_type; public String bank_id; public List<Statements> statements = new ArrayList<Statement.Statements>(); public class Statements { public String month; public String account_id; public String user_id; public String id; public List<Transaction> transactions = new ArrayList<Transaction>(); } } 

Может ли кто-нибудь объяснить мне, что означают эти два утверждения?

 public List<Statements> statements = new ArrayList<Statement.Statements>(); public List<Transaction> transactions = new ArrayList<Transaction>(); 

Это Generics в java

List<?> существу переводится как «Список неизвестных» , т. Е. Список неизвестных типов. ? Называется подстановочным знаком (который по сути означает неизвестный ).


 public List<Statements> statements = new ArrayList<Statement.Statements>(); 

Это по существу создает List который принимает только Statement.Statements . Все, что находится за пределами Statement.Statements которые вы хотите добавить в statements , создаст ошибку компиляции. То же самое относится к public List<Transaction> transactions = new ArrayList<Transaction>(); , Это означает, что List ограничен типом Statement.Statements (переменная statements ).

Вы должны прочитать о Generics, чтобы понять это. Список является сырым типом, который может быть списком таких объектов, как строки, обертки и объекты, определенные пользователем.

 public List<Statements> statements = new ArrayList<Statement.Statements>(); 

В приведенном выше коде говорится, что операторы являются ссылкой на ArrayList объектов Statement. Он указывает, что список будет содержать объекты выражений, которые являются внутренним классом класса Statement.

List<?> Используется для указания списка неизвестного типа.

Это использование дженериков. Вы объявляете список объектов Statement или объектов транзакции.

Ознакомьтесь с википедией для получения дополнительной информации.

http://en.wikipedia.org/wiki/Generics_in_Java

Список statements может содержать только объект Statements . Он называется Generics. Проверьте это для выборочных программ.

http://www.java2s.com/Code/Java/Language-Basics/Asimplegenericclass.htm