ఫంక్షనల్ ఇంటర్ఫేస్లు జావా 8 యొక్క ముఖ్య లక్షణాలలో ఒకటి. ఫంక్షనల్ ఇంటర్ఫేస్ అనేది ఒక నైరూప్య పద్ధతిని మాత్రమే కలిగి ఉండే ఇంటర్ఫేస్, కాబట్టి లాంబ్డా ఎక్స్ప్రెషన్ లేదా మెథడ్ రిఫరెన్స్ లక్ష్యంగా ఉపయోగించడానికి అనుకూలంగా ఉంటుంది.
ఫంక్షనల్ ఇంటర్ఫేస్లు జావాలో ఫంక్షన్లను వస్తువులుగా సూచించడానికి ఒక మార్గాన్ని అందిస్తాయి. ఇది ఫంక్షన్లను పద్ధతులకు ఆర్గ్యుమెంట్లుగా పాస్ చేయడం, పద్ధతుల నుండి ఫంక్షన్లను విలువలుగా తిరిగి ఇవ్వడం మరియు వేరియబుల్స్ లేదా డేటా స్ట్రక్చర్లలో ఫంక్షన్లను స్టోర్ చేయడం సాధ్యపడుతుంది.
జావా 8 ప్యాకేజీలో అనేక అంతర్నిర్మిత ఫంక్షనల్ ఇంటర్ఫేస్లను అందిస్తుంది java.util.function
, వీటిలో:
Supplier
: ఆర్గ్యుమెంట్లను తీసుకోదు మరియు రకం విలువను అందిస్తుందిT
.Consumer
: రకం వాదనను తీసుకుంటుందిT
మరియు ఎటువంటి ఫలితాన్ని అందించదు.Predicate
: రకం ఆర్గ్యుమెంట్ తీసుకొనిT
బూలియన్ విలువను అందిస్తుంది.Function
: రకం ఆర్గ్యుమెంట్ తీసుకుంటుందిT
మరియు రకం విలువను అందిస్తుందిR
.UnaryOperator
: రకం ఆర్గ్యుమెంట్ తీసుకుంటుందిT
మరియు రకం విలువను అందిస్తుందిT
.BinaryOperator
: రకం యొక్క రెండు ఆర్గ్యుమెంట్లను తీసుకుంటుందిT
మరియు రకం విలువను అందిస్తుందిT
.
ఉదాహరణకు, Predicate
ఇచ్చిన స్ట్రింగ్ ఖాళీగా ఉందో లేదో పరీక్షించడానికి ఇంటర్ఫేస్ని ఉపయోగించవచ్చు:
తక్కువPredicate<String> isEmpty = String::isEmpty;
System.out.println(isEmpty.test("")); // true
System.out.println(isEmpty.test("hello")); // false
స్ట్రింగ్ను పూర్ణాంకానికి మార్చడానికి ఇంటర్ఫేస్ని Function
ఉపయోగించవచ్చు:
జావాస్క్రిప్ట్Function<String, Integer> parseInt = Integer::parseInt;
System.out.println(parseInt.apply("42")); // 42
పూర్ణాంక విలువను పెంచడానికి ఇంటర్ఫేస్ని UnaryOperator
ఉపయోగించవచ్చు:
వెళ్ళండిUnaryOperator<Integer> increment = x -> x + 1;
System.out.println(increment.apply(2)); // 3
ఉల్లేఖనాన్ని ఉపయోగించి ఫంక్షనల్ ఇంటర్ఫేస్లను ప్రోగ్రామర్ కూడా నిర్వచించవచ్చు @FunctionalInterface
. ఈ ఉల్లేఖనం ఐచ్ఛికం, అయితే ఇది ఇంటర్ఫేస్లో ఒక వియుక్త పద్ధతి మాత్రమే ఉందని నిర్ధారించడానికి కంపైల్-టైమ్ చెక్ను అందిస్తుంది.
మొత్తంమీద, ఫంక్షనల్ ఇంటర్ఫేస్లు జావా 8లోని ఫంక్షన్లతో పనిచేయడానికి శక్తివంతమైన మరియు సౌకర్యవంతమైన సాధనం, మరియు నిర్దిష్ట రకాల ఫంక్షనాలిటీని అమలు చేయడానికి అవసరమైన కోడ్ను చాలా సులభతరం చేస్తుంది.