Skip to main content
added 486 characters in body
Source Link
Tamir Adler
  • 441
  • 5
  • 16

You can't directly cast List to List because Java generics are invariant. This means that List is not the same as List, even though Customer is a subtype of Object.

To handle this, you can stream over the list and cast each element individually:

List<Object> list = getList(); return list.stream().map(Customer.class::cast).toList(); 

This works because you're casting each individual element, ensuring type safety at runtime. However, be mindful that if any element in list is not a Customer, it will throw a ClassCastException.

List<Object> list = getList(); return list.stream().map(Customer.class::cast).toList(); 

You can't directly cast List to List because Java generics are invariant. This means that List is not the same as List, even though Customer is a subtype of Object.

To handle this, you can stream over the list and cast each element individually:

List<Object> list = getList(); return list.stream().map(Customer.class::cast).toList(); 

This works because you're casting each individual element, ensuring type safety at runtime. However, be mindful that if any element in list is not a Customer, it will throw a ClassCastException.

deleted 266 characters in body
Source Link
Tamir Adler
  • 441
  • 5
  • 16

With the Java 8 introduced Stream-API a solution would look like

List<Object> list = getList(); List<Customer> customerList = list.stream() .filter(Customer.class::isInstance) .map(Customer.class::cast) .toList(); 

The filter call is necessary because a List<Object> can also contain instances from other objects than Customer.

List<Object> list = getList(); return list.stream().map(Customer.class::cast).toList(); 

With the Java 8 introduced Stream-API a solution would look like

List<Object> list = getList(); List<Customer> customerList = list.stream() .filter(Customer.class::isInstance) .map(Customer.class::cast) .toList(); 

The filter call is necessary because a List<Object> can also contain instances from other objects than Customer.

List<Object> list = getList(); return list.stream().map(Customer.class::cast).toList(); 
added 258 characters in body
Source Link
Valerij Dobler
  • 2.9k
  • 1
  • 22
  • 34
 List<Object> list = getList(); return list.stream().map(Customer.class::cast).toList(); 

With the Java 8 introduced Stream-API a solution would look like

List<Object> list = getList(); List<Customer> customerList = list.stream() .filter(Customer.class::isInstance) .map(Customer.class::cast) .toList(); 

The filter call is necessary because a List<Object> can also contain instances from other objects than Customer.

 List<Object> list = getList(); return list.stream().map(Customer.class::cast).toList(); 

With the Java 8 introduced Stream-API a solution would look like

List<Object> list = getList(); List<Customer> customerList = list.stream() .filter(Customer.class::isInstance) .map(Customer.class::cast) .toList(); 

The filter call is necessary because a List<Object> can also contain instances from other objects than Customer.

Source Link
Tamir Adler
  • 441
  • 5
  • 16
Loading