GWT Autobean Bean为null [英] GWT Autobean Bean is null

查看:145
本文介绍了GWT Autobean Bean为null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请帮助我,我做了什么错误

InfraNameModel

  public interface InfraNameModel {
String getInfraName();

void setInfraName(String infraName);
}

InfraNameModelImpl $ b

  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 $ b

  public class InfraNameModelListImpl implements InfraNameModelList< InfraNameModel> {
私人列表< InfraNameModel> infraNameModelList;

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

@覆盖
公共无效setInfraNameModelList(列表与LT; 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);
列表< 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());

所以我有这样的错误
在这一行



ConsoleLogger.java:32 infraNameModel === null



为什么infraNameModel为空? =(

  === SUCCESS 
ConsoleLogger.java:32 === [{infraName:TEST1 },{ infraName : TEST2\" }]
ConsoleLogger.java:32 infraNameModelList不为空by.client.models.infraNameModel.InfraNameModelListAutoBean$2@36
ConsoleLogger.java:32 infraNameModel === null
ConsoleLogger.java:32(TypeError):无法读取null
的属性'get_18_g $'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
(匿名)@ Impl.java:77
ConsoleLogger.java:55例外:com.google.gwt。 core.client.JavaScriptException:(TypeError):无法读取属性'get_18_g $'为空
ConsoleLogger.java:32 TypeError:无法通过uHg_g读取属性'get_18_g $'为空
$ .D $ g_g $ [as onSuccess_8_g $](Configuration.java:71)
at uHg_g $ .xHg_g $ [as o nSuccess_1_g $](Configuration.java:55)
。在S9f_g $ .Ny_g $ [如onResponseReceived_0_g $](AbstractRequestCallback.java:94)在ZLc_g $ $ .aMc_g
[如fireOnResponseReceived_0_g $](请求。 java:250)
at hNc_g $ .iNc_g $ [as onReadyStateChange_0_g $](RequestBuilder.java:412)
at XMLHttpRequest。< anonymous> (XMLHttpRequest.java:329)
在X9_g $(Impl.java:239)
在$ 9_g $(Impl.java:291)
在XMLHttpRequest。< anonymous> (Impl.java:77)


解决方案


为什么infraNameModel是空的? =

因为数组没有 infraNameModelList 属性。 p>

您必须将JSON数组包装到具有此属性的对象中,以使其与AutoBean模型匹配。


Please help me, what I do wrong

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 I have such error In this line

ConsoleLogger.java:32 infraNameModel=== null

Why infraNameModel is null??? =(

===SUCCESS
ConsoleLogger.java:32 ===[{"infraName":"TEST1"},{"infraName":"TEST2"}]
ConsoleLogger.java:32 infraNameModelList not null by.client.models.infraNameModel.InfraNameModelListAutoBean$2@36
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)

解决方案

Why infraNameModel is null??? =(

Because an Array does not have an infraNameModelList property.

You'd have to wrap the JSON array into an object with such a property to make it match your AutoBean model.

这篇关于GWT Autobean Bean为null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆