2-14 y 2-12 ciclos repetidos, por lo que no hay ningún problema para
Método 1 condiciones de referencia
Método para determinar si el escenario de referencia para satisfacer las necesidades de la época, sólo tenemos que mirar hacia el ginseng y ginseng cumple con los requisitos de la interfaz de
2 escenario de referencia método
Cuatro formas de los tipos de referencia:
Para un método estático de la clase :: staticMethod
ejemplo de un método de un punto objeto a un objeto existente :: instanceMethod
dirigida a cualquier tipo de un procedimiento de ejemplo C1ass :: instanceMethod
punto Class :: nuevo constructor
3 referencias de métodos de demostración
Paquete com.imooc.zhangxiaoxi.lambda; Importación de java.util.ArrayList; Importación java.util.List; Importación java.util.Optional; / ** * MethodReferenceTest * * Método de referencia para determinar cumple con los requisitos de la escena, sólo puede vemos los parámetros y los parámetros para satisfacer los requisitos de la interfaz * * @author Wei guisantes * @date 04/06/2020 * / público de clase MethodReferenceTest { estática clase Sku { privada cadena SKUNAME; privada Entero skuPrice; pública Entero getSkuPrice ( ) { volver skuPrice; } / ** *静态类方法引用 * @param sku1 * @param sku2 * @return * / pública estática int Stause (SKU sku1, Goa sku2) { retorno sku1.getSkuPrice () - sku2.getSkuPrice (); } Pública int instanceComparePrice (SKU SKU) { devolver este .getSkuPrice () - sku.getSkuPrice (); } } Clase PriceComparator { pública int staUse2 (SKU sku1, Goa sku2) { retorno sku1.getSkuPrice () -sku2.getSkuPrice (); } } / ** * Ordenar recibir interfaces de comparar, el cual método método comparar, el mismo tipo de recibir dos parámetros * * y casos, * 1 dos parámetros (sku1, sku2) del mismo tipo su monovalente * 2 resta int tipo de retorno * que se pueden utilizar como lambda tipo * / público vacío Test () { Lista <Sku> = skuList nueva nueva ArrayList <Sku> (); skuList.sort ((SKU1, SKU2 ) -> sku1.getSkuPrice () - sku2.getSkuPrice ()); // clase 1 :: nombre del método skuList.sort (SKU :: Stause); // 1 expansión skuList.sort ((SKU sku1, Sku sku2 ) ->{ Return Sku.staUse (SKU1, SKU2); }); // 2 :: sujeto ejemplo nombre del método PriceComparator priceComparator = nuevo nuevo PriceComparator (); skuList.sort (priceComparator :: staUse2); // 2 Expand skuList.sort (( SKU1 SKU, SKU SKU2) -> { retorno priceComparator.staUse2 (SKU1, SKU2); }); // clase 3 :: ejemplo de un nombre de método skuList.sort (SKU :: instanceComparePrice); // . 3 expandido skuList.sort ( (objeto código de artículo, Sku SKU2) -> { retorno object.instanceComparePrice (SKU2); } ); // punto 4 de referencia constructor
// skuList está vacío, o nulo, Optional.ofNullable (skuList) .orElseGet ( el ArrayList :: nuevo nuevo ); } }