से अपरिवर्तनीय प्रकार मेरे पास जेनिक्स का उपयोग करके कुछ गिइस बाइंडिंग कोड है जो एक्लिप्स के कंपाइलर से ठीक से काम करता है और काम करता है, लेकिन जावा (कमांड लाइन) कंपाइलर से नहीं। मैंने नवीनतम (1.7.0_01) जावा एसडीके में अपग्रेड किया लेकिन फिर भी निम्न त्रुटि प्राप्त हुई।जावा जेनरिक त्रुटि: कमांड लाइन कंपाइलर
[error] ...\BindCategorySelectorActivity.java:42: error: inconvertible types
[error] (Class<? extends ListAdapterDataProvider<Row<? extends DatabaseItem>>>) CategoryDataProvider.class);
[error] ^
[error] required: Class<? extends ListAdapterDataProvider<Row<? extends DatabaseItem>>>
[error] found: Class<CategoryDataProvider>
[error] 1 error
[error] {file:/.../compile:compile: javac returned nonzero exit code
प्रासंगिक कोड:
public interface Category extends DatabaseItem {}
public class CategoryDataProvider implements
ListAdapterDataProvider<Row<Category>> {}
public class BindListViewHandlerWithSpecificProvider extends AbstractModule {
public BindListViewHandlerWithSpecificProvider(
Class<? extends ListAdapterDataProvider<Row<? extends DatabaseItem>>>
dataProviderClass) {}
}
@SuppressWarnings("unchecked")
// Error happens here:
final BindListViewHandlerWithSpecificProvider
bindListViewHandlerWithSpecificProvider =
new BindListViewHandlerWithSpecificProvider(
(Class<? extends ListAdapterDataProvider<Row<? extends DatabaseItem>>>)
CategoryDataProvider.class);
खैर वापस रख, यह संकलन करने में कामयाब रहे, लेकिन मैं अगर यकीन नहीं है ऑब्जेक्ट में अतिरिक्त कलाकार डालने से समस्या को हल किया गया। बांधने की कोशिश करते समय गिस एक नल सूचक अपवाद के साथ दुर्घटनाग्रस्त हो जाता है। जिस लाइन की इसकी रिपोर्टिंग 'bindListViewHandlerWithSpecificProvider' तक पहुंच रही है। और याद रखें, ग्रहण के भीतर बनाए गए त्रुटि के बिना यह समान कोड संकलित और निष्पादित करता है। –
मैं उस उत्सुक व्यवहार को स्वीकार करूंगा। ऑब्जेक्ट में अतिरिक्त कलाकार डालने से 'साइडकास्टिंग' से जावैक को छेड़छाड़ करने से परे कुछ भी नहीं होता है। आप _should_ प्रभावी ढंग से एक ही कार्यक्रम के साथ खत्म हो। –
क्या आप जेनिक्स के लिए गुइस के अतिरिक्त समर्थन से परिचित हैं और यदि पैरामीटरयुक्त प्रकारों को पारित करने के लिए बेहतर तंत्र होगा? कोई विचार अगर स्कैला पैरामीटरयुक्त प्रकारों को पारित करने के लिए बेहतर समर्थन प्रदान करता है? –