2017-02-09 1 views
0

Bitte helfen Sie mir, was ich falsch gemachtGWT Autobean Bean ist null

InfraNameModel

public interface InfraNameModel { 
    String getInfraName(); 

    void setInfraName(String infraName); 
} 

InfraNameModelImpl

public class InfraNameModelImpl implements InfraNameModel { 
    private String infraName; 

    @Override 
    public String getInfraName() { 
     return infraName; 
    } 

    @Override 
    public void setInfraName(String infraName) { 
     this.infraName = infraName; 
    } 
} 

InfraNameModelList

public interface InfraNameModelList<T extends InfraNameModel> { 

    public List<T> getInfraNameModelList(); 

    public void setInfraNameModelList(List<T> infraNameModel); 
} 

InfraNameModelListImpl

public class InfraNameModelListImpl implements InfraNameModelList<InfraNameModel> { 
    private List<InfraNameModel> infraNameModelList; 

    @Override 
    public List<InfraNameModel> getInfraNameModelList() { 
     return infraNameModelList; 
    } 

    @Override 
    public void setInfraNameModelList(List<InfraNameModel> infraNameModelList) { 
     this.infraNameModelList = infraNameModelList; 
    } 
} 

IBeanFactory

public interface IBeanFactory extends AutoBeanFactory { 
    IBeanFactory INSTANCE = GWT.create(IBeanFactory.class); 

    AutoBean<InfraNameModel> infraNameModel(); 

    AutoBean<InfraNameModelList> infraNameModelList(); 
} 

...

  InfraNameModelList infraNameModelList = beanFactory.deserializeFromJson(" [{\"infraName\":\"TEST1\"},{\"infraName\":\"TEST2\"}}"); 
      if (infraNameModelList == null) 
       logger.info("infraNameModelList=== null"); 
      else 
       logger.info("infraNameModelList not null " + infraNameModelList); 
      List<InfraNameModelImpl> infraNameModel = infraNameModelList.getInfraNameModelList(); 
      if (infraNameModel == null) 
       logger.info("infraNameModel=== null"); 
      else 
       logger.info("infraNameModel=== not null " + infraNameModel); 
      InfraNameModelImpl infraNameModelImpl = infraNameModel.get(0); 
      if (infraNameModel == null) 
       logger.info("infraNameModelImpl=== null"); 
      else 
       logger.info("infraNameModelImpl=== not null " + infraNameModelImpl); 
      logger.info("===" + infraNameModelImpl.getInfraName()); 

So habe ich solche Fehler In dieser Zeile

ConsoleLogger.java:32 infraNameModel === null

Warum infraNameModel ist null ??? = (

===SUCCESS 
ConsoleLogger.java:32 ===[{"infraName":"TEST1"},{"infraName":"TEST2"}] 
ConsoleLogger.java:32 infraNameModelList not null [email protected] 
ConsoleLogger.java:32 infraNameModel=== null 
ConsoleLogger.java:32 (TypeError) : Cannot read property 'get_18_g$' of null 
H3f_g$ @ ConsoleLogger.java:32 
eAf_g$ @ SimpleConsoleLogHandler.java:36 
szf_g$ @ Logger.java:312 
rzf_g$ @ Logger.java:302 
Pzf_g$ @ Logger.java:236 
rad_g$ @ LogConfiguration.java:169 
lab_g$ @ Impl.java:186 
$9_g$ @ Impl.java:293 
(anonymous) @ Impl.java:77 
ConsoleLogger.java:55 Exception: com.google.gwt.core.client.JavaScriptException: (TypeError) : Cannot read property 'get_18_g$' of null 
ConsoleLogger.java:32 TypeError: Cannot read property 'get_18_g$' of null 
    at uHg_g$.D$g_g$ [as onSuccess_8_g$] (Configuration.java:71) 
    at uHg_g$.xHg_g$ [as onSuccess_1_g$] (Configuration.java:55) 
    at S9f_g$.Ny_g$ [as onResponseReceived_0_g$] (AbstractRequestCallback.java:94) 
    at ZLc_g$.aMc_g$ [as fireOnResponseReceived_0_g$] (Request.java:250) 
    at hNc_g$.iNc_g$ [as onReadyStateChange_0_g$] (RequestBuilder.java:412) 
    at XMLHttpRequest.<anonymous> (XMLHttpRequest.java:329) 
    at X9_g$ (Impl.java:239) 
    at $9_g$ (Impl.java:291) 
    at XMLHttpRequest.<anonymous> (Impl.java:77) 

Antwort

1

Warum infraNameModel null ist ??? = (

Da ein Array keine infraNameModelList Eigenschaft hat.

würden Sie haben die JSON-Array einzuwickeln in ein Objekt mit einer solchen Eigenschaft, damit es mit Ihrem AutoBean-Modell übereinstimmt.

+0

Ich lese Ihnen gerade antworten https://groups.google.com/forum/#!topic/google-web-toolkit/8Ts07mG0Ci8 vor 4 Jahren. Können Sie detaillierter beschreiben ??? – LeshaRB

+0

[{"infraName": \ "TEST1 \"}, {\ "infraName \": \ "TEST2 \"}] ............... Ich muss diesen JSON umbrechen in { \t "Ergebnisse": [{ \t \t \t "infraName": "TEST1" \t \t}, { \t \t \t "infraName": "TEST2" \t \t} \t] } ? – LeshaRB