JavaRush /ื‘ืœื•ื’ Java /Random-HE /ืžืžืฉืงื™ื ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื ืฉืœ Java
ะะปะตะบัะตะน
ืจึธืžึธื”

ืžืžืฉืงื™ื ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื ืฉืœ Java

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ืžืžืฉืง ืคื•ื ืงืฆื™ื•ื ืœื™ ื‘-Java ื”ื•ื ืžืžืฉืง ื”ืžื›ื™ืœ ืจืง ืฉื™ื˜ื” ืื‘ืกื˜ืจืงื˜ื™ืช ืื—ืช. ื”ืžื˜ืจื” ื”ืขื™ืงืจื™ืช ื”ื™ื ืœื”ืฉืชืžืฉ ื‘ื• ื‘ื‘ื™ื˜ื•ื™ื™ ืœืžื‘ื“ื” ื•ื”ืคื ื™ื•ืช ืœืฉื™ื˜ื”.
ืžืžืฉืงื™ื ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื ืฉืœ Java - 1
ื”ื ื•ื›ื—ื•ืช ืฉืœ ืฉื™ื˜ื” ืžื•ืคืฉื˜ืช ืื—ืช ื”ื™ื ื”ืชื ืื™ ื”ื™ื—ื™ื“, ื›ืš ืฉืžืžืฉืง ืคื•ื ืงืฆื™ื•ื ืœื™ ื™ื›ื•ืœ ืœื”ื›ื™ืœ ื’ื defaultืฉื™ื˜ื•ืช static. ืืชื” ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืืช ื”ื”ืขืจื” @FunctionalInterface ืœืžืžืฉืง ืคื•ื ืงืฆื™ื•ื ืœื™. ื–ื” ืœื ื ื“ืจืฉ, ืื‘ืœ ืื ื”ื”ืขืจื” ื”ื–ื• ืงื™ื™ืžืช, ื”ืงื•ื“ ืœื ื™ืงืžืคืœ ืื ื™ืฉ ื™ื•ืชืจ ืื• ืคื—ื•ืช ืžืชื•ื“ื” ืžื•ืคืฉื˜ืช ืื—ืช. ืžื•ืžืœืฅ ืœื”ื•ืกื™ืฃ ืืช @FunctionalInterface. ื–ื” ื™ืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ื‘ืžืžืฉืง ื‘ื‘ื™ื˜ื•ื™ื™ ืœืžื‘ื“ื” ืžื‘ืœื™ ืœื“ืื•ื’ ืฉืžื™ืฉื”ื• ื™ื•ืกื™ืฃ ืฉื™ื˜ื” ืžื•ืคืฉื˜ืช ื—ื“ืฉื” ืœืžืžืฉืง ื•ื”ื™ื ืชืคืกื™ืง ืœื”ื™ื•ืช ืคื•ื ืงืฆื™ื•ื ืœื™ืช. ืœ-Java ื™ืฉ ืžืžืฉืงื™ื ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื ืžื•ื‘ื ื™ื ื”ื ืžืฆืื™ื ื‘- java.util.function. ืœื ืืชืขื›ื‘ ืขืœื™ื”ื ื‘ืคื™ืจื•ื˜. ืื ื™ ืžืฆื™ื™ืŸ ืฉื”ืฉื™ืžื•ืฉื™ื ื”ื ืคื•ืฆื™ื ื‘ื™ื•ืชืจ ื”ื: Consumer<T> , Function<T,R> , Predicate<T> , Supplier<T> , UnaryOperator<T> ื•ืฆื•ืจื•ืช ื”ื‘ื™ ืฉืœื”ื . ืคืจื˜ื™ื ื ื•ืกืคื™ื ื ื™ืชืŸ ืœืžืฆื•ื ื‘ืขืžื•ื“ ื”ืชื™ืขื•ื“: Package java.util.function
import java.util.function.Predicate;

//ะžะฟั€ะตะดะตะปัะตะผ ัะฒะพะน ั„ัƒะฝะบั†ะธะพะฝะฐะปัŒะฝั‹ะน ะธะฝั‚ะตั€ั„ะตะนั
@FunctionalInterface
interface MyPredicate {
    boolean test(Integer value);
}

public class Tester {
    public static void main(String[] args) throws Exception {
        MyPredicate myPredicate = x -> x > 0;
        System.out.println(myPredicate.test(10));   //true

        //ะะฝะฐะปะพะณะธั‡ะฝะพ, ะฝะพ ะธัะฟะพะปัŒะทัƒะตั‚ัั ะฒัั‚ั€ะพะตะฝะฝั‹ะน ั„ัƒะฝะบั†ะธะพะฝะฐะปัŒะฝั‹ะน ะธะฝั‚ะตั€ั„ะตะนั java.util.function.Predicate
        Predicate<Integer> predicate = x -> x > 0;
        System.out.println(predicate.test(-10));    //false
    }
}
ืื‘ืœ ืžืกืชื‘ืจ ืฉื™ืฉ ื ืงื•ื“ื” ืขื“ื™ื ื” ืื—ืช ื”ืžืชื•ืืจืช ื‘ืžืคืจื˜ ืฉืคืช Java: "ืžืžืฉืงื™ื ืื™ื ื ื™ื•ืจืฉื™ื ืžืื•ื‘ื™ื™ืงื˜, ืืœื ืžื›ืจื™ื–ื™ื ื‘ืื•ืคืŸ ืžืจื•ืžื– ืขืœ ืจื‘ื•ืช ืžืื•ืชืŸ ืฉื™ื˜ื•ืช ื›ืžื• ืื•ื‘ื™ื™ืงื˜." ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉืžืžืฉืงื™ื ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื ื™ื›ื•ืœื™ื ืœื”ื›ื™ืœ ื‘ื ื•ืกืฃ ืฉื™ื˜ื•ืช ืžื•ืคืฉื˜ื•ืช ื”ืžื•ื’ื“ืจื•ืช ื‘ืžื—ืœืงื” Object. ื”ืงื•ื“ ืฉืœื”ืœืŸ ื—ื•ืงื™, ืœื ื™ื”ื™ื• ืฉื’ื™ืื•ืช ืงื•ืžืคื™ืœืฆื™ื” ืื• ื–ืžืŸ ืจื™ืฆื”:
@FunctionalInterface
public interface Comparator<T> {
   int compare(T o1, T o2);
   boolean equals(Object obj);
   // ะดั€ัƒะณะธะต default or static ะผะตั‚ะพะดั‹
}
ื”ื™ื–ื”ืจ ื‘ืžื”ืœืš ื”ืจืื™ื•ืŸ! ื‘ื”ืฆืœื—ื”!
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION