# Method Reference [參考網站](http://zyzhang.github.io/blog/2013/06/15/java8-preview-method-reference/) ```java= class Product{ String name; int qty; public String toString() { return name; } public Product(String name,int qty) { this.name = name; this.qty = qty; } static class ProductFilter{ public boolean isAvailable(Product p) { return p.qty >= 10; } } } public class Test { public static void main(String[] args) { List<Product> products = Arrays.asList(new Product("MotherBoard",5),new Product("Speaker",20)); products.stream().filter(Product.ProductFilter::isAvailable).forEach(p->System.out.println(p)); } } ``` ## Which modification enables the code fragment to print Speaker? A. Implement Predicate in the Product.ProductFilter class and replace line n2 with .filter (p -> p.ProductFilter.test (p)) **B. Replace line n1 with: public static boolean isAvailable (Product p) {** C. Replace line n2 with: .filter (p -> p.ProductFilter: :isAvailable (p)) D. Replace line n2 with: .filter (p -> Product: :ProductFilter: :isAvailable ()) - [x] **Answer: B** ###### tags: `ocpjp`