java - que - No se puede crear una instancia del tipo List<Product>
metodos de clase awt (5)
La lista puede ser instanciada por cualquier clase que implemente la interfaz. De esta forma, Java nos proporciona el comportamiento polimórfico. Vea el ejemplo a continuación
List list = new ArrayList ();
En lugar de crear una lista de ArrayList directamente, estoy usando una lista para referirme al objeto ArrayList, de modo que solo estamos usando los métodos de interfaz de lista y no nos importa su implementación real.
Ejemplos de clases que implementan List son ArrayList, LinkedList, Vector. Probablemente desee crear una lista según sus requisitos.
Ejemplo: - LinkedList es más útil cuando tiene que hacer un número de inertes o eliminaciones. El arraylist es más intensivo en rendimiento ya que está respaldado por una matriz de tamaño fijo y los contenidos de la matriz deben cambiarse moviendo o volviendo a crecer la matriz.
De nuevo, al usar una Lista, podemos simplemente cambiar nuestra instanciación de objetos sin cambiar ningún código más en sus programas.
Supongamos que estamos utilizando ArrayList<String> value = new ArrayList<String>();
podemos usar un método específico de ArrrayList y nuestro código no será robusto
Utilizando List<String> value = new ArrayList<String>();
nos aseguramos de que solo usemos los métodos de la interfaz List. Y si queremos cambiarlo a LinkedList, simplemente tenemos que cambiar el código: -
List value = new ArrayList ();
------ su código usa métodos de interfaz de lista .....
value = new LinkedList ();
----- su código todavía usa métodos de interfaz de lista y no tenemos que cambiar nada ---- y no tenemos que cambiar nada en nuestro código aún más
Por cierto, LinkedList también funciona con Deque, que obviamente tampoco se puede crear una instancia ya que también es una interfaz
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo inicializar el objeto List <String> en Java? 11 respuestas
Tengo el siguiente código:
List<Product> product = new List<Product>();
El error:
Cannot instantiate the type List<Product>
Product
es una entidad en mi proyecto EJB. ¿Por qué estoy recibiendo este error?
Las interfaces no se pueden instanciar directamente, debe crear instancias de las clases que implementan dichas interfaces.
Prueba esto:
NameValuePair[] params = new BasicNameValuePair[] {
new BasicNameValuePair("param1", param1),
new BasicNameValuePair("param2", param2),
};
List es una interfaz. Necesitas una clase específica al final, así que prueba
List l = new ArrayList();
o
List l = new LinkedList();
Lo que se adapte a tus necesidades
Use un tipo de lista concreta, por ejemplo, ArrayList
lugar de solo List
.
List
es una interfaz . Las interfaces no pueden ser instanciadas. Solo los tipos concretos pueden ser instanciados. Probablemente desee utilizar una ArrayList
, que es una implementación de la interfaz de la List
.
List<Product> products = new ArrayList<Product>();