தொகுதி பாடங்கள் (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() மற்றும் தனிப்பட்ட மாறி மதிப்பை அமைக்கும் setter setValue(T மதிப்பு) ஆகியவற்றை வரையறுப்பதன் மூலம் பொதுவான வகுப்பு பெட்டியை முடிக்கவும்.
குறிப்பைக் காட்டு
பொதுவான வகை அளவுரு `T` ஐப் பயன்படுத்தி சரியான கையொப்பத்துடன் முறைகளை எழுதவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
நிலையான பொதுவான முறையான பிரிண்ட்அரேயை உருவாக்கவும், இது T[] என்ற வரிசையின் வரிசையை எடுத்து ஒவ்வொரு உறுப்புக்கும் ஒவ்வொரு வளையத்தைப் பயன்படுத்தி அச்சிடுகிறது.
குறிப்பைக் காட்டு
வகை அளவுரு `<T>` உடனடியாக `static` க்குப் பிறகு மற்றும் திரும்ப வகை `void` க்கு முன் வைக்கப்பட வேண்டும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
String உடன் அளவுருக் கொண்ட கொள்கலன் இடைமுகத்தை செயல்படுத்தும் நிலையான வகுப்பு StringContainer ஐ உருவாக்கவும். ஒரு கன்ஸ்ட்ரக்டரை வரையறுத்து, சரம் அளவுருவை எடுத்து getItem() முறையை செயல்படுத்தவும்.
குறிப்பைக் காட்டு
வகுப்பு கையொப்பத்தில் `T` என்ற பொதுவான வகையை `ஸ்ட்ரிங்` உடன் மாற்றவும் மற்றும் `getItem()` திரும்பும் வகையிலும் மாற்றவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்