import java.util.Arrays;
import java.util.List;
import java.util.logging.Logger;
import java.util.stream.Collectors;
public class UseProducts {
private static final Logger logger = Logger.getLogger(UseProducts.class.getName());
public static void main(String[] args) {
List products = Arrays.asList(new Product("football", 10),
new Product("basketball", 12), new Product("baseball", 5));
List names = products.stream() // Stream
.map(Product::getName) // Stream
// .peek(System.out::println)
.collect(Collectors.toList());
// complex string arg always gets formed!
// Arguments to methods always get evaluated
logger.info("Product not found; available products are: " + names);
// supplier.get() only invoked if loggable
logger.info(() -> "Product not found; available products are: " + names);
}
}