new Thread(new Runnable() { publicvoidrun() { System.out.println("Run!"); } }).start();
1 2 3 4
//由形式参数和方法体两部分组成,中间通过“->”分隔 new Thread(() -> { System.out.println("Run!"); }).start();
使用: java.util.function.Function方式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
public classCollectionUtils { public static List map(List input, Function processor) { ArrayList result = new ArrayList(); for (T obj : input) { result.add(processor.apply(obj)); } return result; }
public staticvoid main(String[] args) { List input = Arrays.asList(newString[] {"apple", "orange", "pear"}); List lengths = CollectionUtils.map(input, (String v) -> v.length()); Listuppercases = CollectionUtils.map(input, (String v) -> v.toUpperCase()); } }
II. 方法引用
可以在不调用某个方法的情况下引用一个方法
举例
1 2 3 4 5 6 7
List input = Arrays.asList(new String[] {"apple", "orange", "pear"});
//当第三方提供了新的批量处理的功能,允许在一次请求中同事转换多个数值 //这里就可以直接通过 新增一个默认方法来解决 public interface CurrencyConverter { BigDecimal convert(Currency from, Currency to, BigDecimal amount);
default List convert(Currency from, Currency to, List amounts) { List result = new ArrayList(); for (BigDecimal amount : amounts) { result.add(convert(from, to, amount)); } return result; } }