2011-10-02 12 views
5

GWT 2.4 समर्थन इस मामले करता है:GWT 2.4.0 RequestFactory बहुरूपता

@Entity class MyBase {...} 
@Entity class MyChild1 extends MyBase {...} 
@Entity class MyChild2 extends MyBase {...} 
... 
@ProxyFor(MyBase.class) class MyBaseProxy extends EntityProxy {...} 
@ProxyFor(MyChild1.class) class MyChild1Proxy extends MyBaseProxy {...} 
@ProxyFor(MyChild2.class) class MyChild2Proxy extends MyBaseProxy {...} 
... 
@Service(ArticleBase.class) 
public interface MyBaseRequest extends RequestContext { 
    Request<MyBaseProxy> getStuff(); // MyChild1 here 
} 
... 
Request<MyBaseProxy> getStuffRequest = request.getStuff(); 
getStuffRequest.fire(new Receiver<MyBaseProxy>() { 
    @Override 
    public void onSuccess(MyBaseProxy proxy) { 
     button.setText(((MyChild1Proxy)proxy).getQwerty()); // HERE! 
    } 
}); 

?

समस्या यह है कि, मैं इसे काम नहीं कर सकता। यह अभी तक समर्थित नहीं है या मुझे कहीं कुछ जादू एनोटेशन जोड़ने की जरूरत है। कंक्रीट प्रकारों का उपयोग करते समय सब कुछ ठीक काम करता है, लेकिन अगर मैं बेस का उपयोग करता हूं तो यह काम नहीं करता है।

आपको क्या लगता है?

उत्तर

10

@ExtraTypes साथ यह निश्चित:

@Service(ArticleBase.class) 
@ExtraTypes({MyChild1Proxy.class, MyChild2Proxy.class}) 
public interface MyBaseRequest extends RequestContext { 
    Request<MyBaseProxy> getStuff(); // MyChild1 here 
} 
+0

, धन्यवाद मुझे बहुत समय बचा लिया - अजीब ढेर अतिप्रवाह अपवाद हो रही थी। बेस प्रॉक्सी क्लास पर अतिरिक्त प्रकार की एनोटेशन डालने की उम्मीद है (इससे स्टैक ओवरफ़्लो अपवादों का कारण बनता है) ... –