के लिए टाइप एरर के साथ समस्या को कैसे दूर करें I C# और C++ में कुछ प्रोजेक्ट के बाद जावा के साथ काम करना शुरू कर रहा हूं।विज़िटर कार्यान्वयन
मैं इस तरह आगंतुक इंटरफेस डिजाइन करने के लिए चाहता था:
public interface ActionVisitor<A> {
void visitAction(A action);
}
public interface MySmallActionVisitor
extends ActionVisitor<ActionA>,
ActionVisitor<ActionB>
{
}
public interface MyFullActionVisitor
extends ActionVisitor<ActionA>,
ActionVisitor<ActionB>,ActionVisitor<ActionC>,ActionVisitor<ActionD> //....
{
}
बेशक इस प्रकार के विलोपन की वजह से काम नहीं करता। (कारण है कि मैं कुछ इस तरह चाहते हैं कि मैं क्रिया के विभिन्न समूहों का दौरा किया जा सकता है के लिए अलग अलग आगंतुक इंटरफेस होगा।)
एकमात्र समाधान है कि मेरे दिमाग में आता है इंटरफेस
public interface ActionAVisitor {
void visitAction(ActionA action);
}
public interface ActionBVisitor {
void visitAction(ActionB action);
}
//...
घोषित करने के लिए है
और फिर
public interface MySmallActionVisitor
extends ActionAVisitor, ActionBVisitor
{
}
यह काम करेगा, लेकिन मैं सभी ActionXVisitor-इंटरफेस की घोषणा जो बेवकूफ पुनरावृत्ति और फ़ाइलों के बहुत सारे है नहीं करना चाहते हैं ...
क्या आपके पास कोई विचार है कि यह बेहतर कैसे करें?
बहुत बहुत धन्यवाद!
आपका मतलब "उदाहरण" का उपयोग करना है? यही वह विज़िटर पैटर्न टालना चाहता है। इसके अलावा, मुझे इन्हें लिखना होगा यदि प्रत्येक आगंतुक (MySmallVisitor, MyFullVisitor और अन्य) में ब्लॉक। – Philipp
हाँ, मेरा मतलब उदाहरण है। इससे बचने का प्रयास करने से अंत में बहुत अधिक कोड हो सकता है। –
यदि मैंने वर्णित समस्या से निपटने के लिए वास्तव में कोई रास्ता नहीं है, तो मुझे कोड के उदाहरण से अधिक कोड चाहिए ... गरीब भाषा :-( – Philipp