2011-12-29 7 views
6

Duplicar posible:
What is Type<Type> called?
What does List<?> mean in java generics?¿Qué es la Lista <?> en Java (Android)?

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>(); 
} 
} 

¿Alguien puede explicar lo que significan estas dos afirmaciones

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

public List<Transaction> transactions = new ArrayList<Transaction>(); 
+0

http://docs.oracle.com/javase/tutorial/java/generics/index.html –

+0

he añadido la etiqueta "genéricos" para usted. Sé que no sabías nada, pero lo hice. Esperemos que conduzca a algunas preguntas relacionadas trivialmente similares. –

+0

http://stackoverflow.com/questions/1844770/what-does-list-mean-in-java-generics, http://stackoverflow.com/questions/2218216/in-java-what-does-it-mean -when-a-type-is-followed-by-angle-brackets-as-in-list –

Respuesta

15

Ésta es Generics en Java

List<?> se traduce esencialmente como una "lista de incógnitas" , es decir, una lista de tipos desconocidos. El ? se conoce como Wildcard (que esencialmente significa desconocido).


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

Esto crea esencialmente un List que sólo acepta Statement.Statements. Cualquier cosa que no sea Statement.Statements que desee agregar al statements creará un error de compilación. Lo mismo se aplica al public List<Transaction> transactions = new ArrayList<Transaction>();. Esto significa que el List es bounded a un tipo Statement.Statements (en la variable statements).

+1

¿Podemos decir simplemente que almacena objetos de enunciados que en clase anidada en Statement? ' –

+0

@Veer, eso es lo que dije. –

+0

Gracias por responder, déjame leer la documentación y poner algunos ejemplos, estoy votando y aceptando la respuesta :-) –

2

Deberías leer sobre Generics para entender esto. La lista es un tipo sin formato que podría ser la lista de Objetos como cadenas, envoltorios y objetos definidos por el usuario.

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

El código anterior dice que las declaraciones son la referencia a ArrayList de Statement Objects. Especifica que la lista contendría los objetos de Sentencias, que es la clase interna de la clase Statement.

List<?> se utiliza para decir la lista de tipo desconocido.

Cuestiones relacionadas