मैं जावा में जेनेरिक तरीकों को समझने की कोशिश कर रहा हूं।जावा जेनेरिक तरीकों को समझना
public class GenericTest {
interface Shape {
public long area();
}
public static class Triangle implements Shape
{
private long base, height;
public long area() { return (base * height)/2; }
}
public static class Rectangle implements Shape
{
private long width, height;
public long area() { return width * height; }
}
public <T extends Shape> long area1(T shape)
{
return shape.area();
}
public long area2(Shape shape)
{
return shape.area();
}
}
मैं नहीं देख सकता/क्यों इस्तेमाल करना चाहिए/area2 (या इसके विपरीत) के बजाय area1 लागू: निम्नलिखित कोड को देखते हुए। क्या मैं कुछ भूल रहा हूँ? दोनों विधियां एक ही काम नहीं करते हैं?
यह मुझे छोड़ दिया है एक सा जावा
पर वास्तव में क्या चल रहा है यह इस मामले में जेनेरिक का उपयोग करने का कोई मतलब नहीं है। जिन मामलों में यह * करता है * समझ में आता है, जब आप नहीं जानते कि आपके पास ** स्टोर ** किस तरह के प्रकार हैं। –
इस मामले में @ लुकासकुथ ने कहा कि आपको क्षेत्र क्षेत्र 2() का एक सामान्य संस्करण बनाने की आवश्यकता नहीं है; हालांकि वर्तमान ओरेकल दस्तावेज जेनेरिक पर महान उदाहरण दिखाता है। वाइल्डकार्ड जेनेरिक उदाहरण भी भ्रम को स्पष्ट करने में मदद कर सकते हैं .. http://docs.oracle.com/javase/tutorial/extra/generics/methods.html –
पर एक नज़र डालें, मैं जेनिक्स को सी ++ के बराबर बराबर देख रहा था टेम्पलेट्स। मुख्य बात यह है कि आपने यहां बताया कि अन्य उत्तरों से कमी है (और संभवतया जो मैं लापता हूं, वह अवधारणा है जिसका उपयोग किया जाता है "जब आप नहीं जानते कि ** किस प्रकार ** स्टोर ** ** जो बिल्कुल है जो मैं जवाब में ढूंढ रहा था :-) – Xaq