एक इंटरफ़ेस (टेम्पलेट का उपयोग करके) बनाएं:
पैकेज उपयोग.फ़िल्टर; सार्वजनिक इंटरफ़ेस फ़िल्टर & lt; INPUT, OUTPUT & gt; {सार्वजनिक आउटपुट फिल्टर (INPUT mes); } और एक कार्यान्वित वर्ग (केवल परीक्षण के लिए):
पैकेज util.filter; सार्वजनिक स्थैतिक कक्षा TestImplFilter फ़िल्टर & lt; पूर्णांक, स्ट्रिंग & gt; {सार्वजनिक स्ट्रिंग फ़िल्टर (पूर्णांक i) {वापसी "हैलो वर्ल्ड!"; }} मैं इस कोड का परीक्षण करने के लिए प्रयोग कर सकता हूं:
फ़िल्टर & lt; पूर्णांक, स्ट्रिंग & gt; F = नया TestImplFilter (); Println (f.filter (123)); // आउटपुट: हैलो वर्ल्ड! अब, मैं एक स्थिर विधि बनाना चाहता हूं,
इंपीरियल वर्ग पथ ( util.filter.TestImplFilter ) को एक तर्क के रूप में ¼ ?? और INPUT दूसरे तर्क के रूप में, और OUTPUT लौटा। इसलिए, मैंने कोड का पालन किया: <प्री> निजी स्थिर ऑब्जेक्ट बनानाइन्स्टेंस (स्ट्रिंग क्लासपाथ) {{class & lt;? & Gt; TClass = Class.forName (क्लासपाथ); अगर (tClass! = नल) {वापसी tClass.newInstance (); }} पकड़ (अपवाद ई) {e.printStackTrace (); } वापसी नल; } सार्वजनिक अंतिम स्थैतिक फ़िल्टर & lt;?,? & Gt; GetFilter (स्ट्रिंग पथ) {वापसी (फ़िल्टर & lt;?,? & Gt;) createInstance (पथ); } // मेरी समस्या यहां है: सार्वजनिक अंतिम स्थैतिक आउटपुट फिल्टर (स्ट्रिंग पथ, INPUT mes) {फ़िल्टर & lt;?,? & Gt; फ़िल्टर = (फ़िल्टर & lt;?,? & Gt;) createInstance (पथ); वापसी फ़िल्टर.फिल्टर (मेस); } मेरी समस्या स्थिर विधि में फ़िल्टर (स्ट्रिंग पथ, INPUT mes) , यह कोड त्रुटि है। मैं इसे कैसे ठीक कर सकता हूं और इस विधि को लागू करें?
मदद के लिए धन्यवाद:)
मेरा गलती, मैंने आदेश को मसलाया, अब यह सही है आप स्थिर तरीकों के लिए जेनेरिक्स भी निर्दिष्ट कर सकते हैं। ऐसा करने के लिए, रिटर्न पैरामीटर से पहले गेररिक टेम्पलेट जानकारी जोड़ें:
सार्वजनिक अंतिम स्थिर & lt; INPUT, OUTPUT & gt; आउटपुट फिल्टर (स्ट्रिंग पथ, INPUT mes) { तब यह संकलित होगा।
सार्वजनिक वर्ग परीक्षण {निजी स्थिर ऑब्जेक्ट createInstance (स्ट्रिंग वर्गपाठ) {प्रयास करें {क्लास & lt;? & Gt; TClass = Class.forName (क्लासपाथ); अगर (tClass! = नल) {वापसी tClass.newInstance (); }} पकड़ (अपवाद ई) {e.printStackTrace (); } वापसी नल; } @SuppressWarnings ("अनचेक") सार्वजनिक अंतिम स्थैतिक & lt; INPUT, OUTPUT & gt; फ़िल्टर & lt; INPUT, OUTPUT & gt; GetFilter (स्ट्रिंग पथ) {वापसी (फ़िल्टर & lt; INPUT, OUTPUT & gt;) createInstance (पथ); } सार्वजनिक अंतिम स्थैतिक & lt; INPUT, OUTPUT & gt; आउटपुट फिल्टर (स्ट्रिंग पथ, INPUT mes) {फ़िल्टर & lt; INPUT, OUTPUT & gt; फिल्टर = getFilter (पथ); वापसी फ़िल्टर.फिल्टर (मेस); }}
Comments
Post a Comment