మాడ్యూల్ పాఠాలు (2/2)
జావాలో జెనరిక్స్
జెనరిక్స్ (జెనరిక్ రకాలు) తరగతులు, ఇంటర్ఫేస్లు మరియు పద్ధతులను వివిధ రకాల పారామీటర్లుగా ఆపరేట్ చేయడానికి జావాలో ప్రవేశపెట్టబడ్డాయి. ఇది కంపైల్-టైమ్ రకం భద్రతను నిర్ధారిస్తుంది మరియు రన్టైమ్లో ఖరీదైన స్పష్టమైన ప్రసారాలను నివారిస్తుంది.
సాధారణ తరగతులు
<T> యాంగిల్ బ్రాకెట్లను ఉపయోగించి జెనరిక్ క్లాస్ నిర్వచించబడింది, ఇక్కడ T క్లాస్ ఇన్స్టాంటియేట్ చేయబడినప్పుడు పేర్కొనబడే రకానికి ప్లేస్హోల్డర్గా పనిచేస్తుంది.
public class Box<T> {
private T content;
public void setContent(T content) {
this.content = content;
}
public T getContent() {
return content;
}
}Box ఆబ్జెక్ట్ని సృష్టిస్తున్నప్పుడు, మేము అసలు రకాన్ని పేర్కొంటాము:
Box<Integer> integerBox = new Box<>();
integerBox.setContent(123);
int value = integerBox.getContent(); // No cast needed!సాధారణ పద్ధతులు
మీరు వివిధ రకాల పారామితులను ఆమోదించగల ఒకే సాధారణ పద్ధతిని నిర్వచించవచ్చు. పద్ధతి యొక్క రిటర్న్ రకానికి ముందు టైప్ పరామితి ఉంచబడుతుంది.
public static <E> void printArray(E[] elements) {
for (E element : elements) {
System.out.println(element);
}
}వైల్డ్కార్డ్లు మరియు సరిహద్దు రకాలు
నిర్దిష్ట రకాన్ని లేదా దాని ఉపవర్గాలను ఆమోదించడానికి extends కీవర్డ్ (ఎగువ బౌండ్) ఉపయోగించి జెనరిక్ ద్వారా ఆమోదించబడిన రకాలను మేము పరిమితం చేయవచ్చు.
public static <T extends Number> void processNumber(T number) {
// Accepts Integer, Double, Float, etc.
System.out.println(number.doubleValue());
}మీరే ప్రయత్నించండి
Tని తిరిగి ఇచ్చే గెట్టర్ getValue()ని మరియు ప్రైవేట్ వేరియబుల్ విలువను సెట్ చేసే సెట్టర్ setValue(T విలువ)ని నిర్వచించడం ద్వారా జెనరిక్ క్లాస్ బాక్స్ను పూర్తి చేయండి.
సూచనను చూపించు
సాధారణ రకం పరామితి `T`ని ఉపయోగించి సరైన సంతకంతో పద్ధతులను వ్రాయండి.
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది
ఒక స్టాటిక్ జెనరిక్ మెథడ్ ప్రింట్అరేని సృష్టించండి, ఇది టైప్ T[] అనే శ్రేణిని తీసుకుంటుంది మరియు ప్రతి మూలకాన్ని ఒక్కో లూప్ని ఉపయోగించి ప్రింట్ చేస్తుంది.
సూచనను చూపించు
టైప్ పరామితి `<T>` తప్పనిసరిగా `స్టాటిక్` తర్వాత మరియు రిటర్న్ టైప్ `శూన్యం` ముందు ఉంచాలి.
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది
స్ట్రింగ్తో పారామితి చేయబడిన కంటైనర్ ఇంటర్ఫేస్ను అమలు చేసే స్టాటిక్ క్లాస్ స్ట్రింగ్కంటైనర్ను సృష్టించండి. స్ట్రింగ్ పరామితిని తీసుకునే కన్స్ట్రక్టర్ను నిర్వచించండి మరియు getItem() పద్ధతిని అమలు చేయండి.
సూచనను చూపించు
సాధారణ రకం `T`ని తరగతి సంతకంలో `స్ట్రింగ్`తో మరియు `getItem()` రిటర్న్ రకంలో ప్రత్యామ్నాయం చేయండి.
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది