इस सरलीकृत उदाहरण में मेरे पास एक सामान्य वर्ग है, और एक विधि जो टाइप पैरामीटर के बावजूद मानचित्र लौटाती है। जब मैं कंटेनर श्रेणी पर एक प्रकार निर्दिष्ट नहीं करता हूं तो संकलक मानचित्र पर प्रकारों को क्यों मिटा देता है?यह सामान्य जावा कोड संकलित क्यों नहीं होगा?
import java.util.Map;
public class MyClass<T>
{
public Map<String, String> getMap()
{
return null;
}
public void test()
{
MyClass<Object> success = new MyClass<Object>();
String s = success.getMap().get("");
MyClass unchecked = new MyClass();
Map<String, String> map = unchecked.getMap(); // Unchecked warning, why?
String s2 = map.get("");
MyClass fail = new MyClass();
String s3 = fail.getMap().get(""); // Compiler error, why?
}
}
मुझे यह कंपाइलर त्रुटि मिलती है।
MyClass.java:20: incompatible types
found : java.lang.Object
required: java.lang.String
String s3 = fail.getMap().get(""); // Compiler error
अनचेक चेतावनी का सटीक पाठ क्या है? – Powerlord
चेतावनी: [अनचेक] अनचेक रूपांतरण –