Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从GXT中的模型类获取字符串时获取ClassCastException_Java_Gwt_Gxt - Fatal编程技术网

Java 从GXT中的模型类获取字符串时获取ClassCastException

Java 从GXT中的模型类获取字符串时获取ClassCastException,java,gwt,gxt,Java,Gwt,Gxt,我从模型中获取值时获取ClassCastException。请在下面查找异常详细信息: Caused by: java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.String at com.csscorp.presentation.spinneret.client.ams.AttendanceCaseCreationModel.getCheckinDate (AttendanceCaseCreation

我从模型中获取值时获取ClassCastException。请在下面查找异常详细信息:

Caused by: java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.String
at com.csscorp.presentation.spinneret.client.ams.AttendanceCaseCreationModel.getCheckinDate (AttendanceCaseCreationModel.java:164)
 at com.csscorp.presentation.spinneret.client.ams.AttendanceCaseCreationGridEditor$8.handleEvent   (AttendanceCaseCreationGridEditor.java:916)
下面是我的代码:

             ColumnConfig checkinDatecolumn = new ColumnConfig();
     checkinDatecolumn.setId("checkinDate");
     checkinDatecolumn.setHeader("Check In Date");
     checkinDatecolumn.setWidth(85);
     checkinDatecolumn.setMenuDisabled(true);
     checkinDatecolumn.setSortable(false);
    final DateField dateField1 = new DateField();
    dateField1.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MMM/yyyy")); 
     final String tempDate=dateField1.getRawValue();

    dateField1.getDatePicker().addListener(Events.Select, new Listener<DatePickerEvent>() {

        @Override
        public void handleEvent(DatePickerEvent dpe) {

        if(ACCCheckBoxModel.getSelectedItem().getRosterDate()!=null){
        DateTimeFormat format = DateTimeFormat.getFormat("dd/MMM/yyyy");
        rosterdate=format.parse(ACCCheckBoxModel.getSelectedItem().getRosterDate());
            nextdate.setTime(rosterdate.getTime()+(1000*60*60*24));
            prevdate.setTime(rosterdate.getTime()-(1000*60*60*24));
        }
        int rowIndex = caseStoreModule.indexOf(ACCCheckBoxModel.getSelectedItem());
        Window.alert("Row Index-->"+rowIndex);



    if(ACCCheckBoxModel.getSelectedItem().getCheckinDate().toString() == null){//here I  am getting ClassCastException
                                            if (rosterdate.compareTo(dateField1.getValue())==0 || nextdate.compareTo(dateField1.getValue())==0){
                Window.alert("this is a valid date-->");
            }

            else {
                Window.alert("Enter a valid date-->");
                dateField1.reset();
            }



        }

        else{
//Here I need to Implement validation logic if the value from the model is not null

        }
            } 
    }); 
更新

调用toString方法后,ClassCastException不会出现

return get("checkinDate").toString();
但是当我检查null值时,它抛出了NullPointerException

if(ACCCheckBoxModel.getSelectedItem().getCheckinDate() == null)
例外情况详情如下:

原因:java.lang.NullPointerException:null位于com.csscorp.presentation.spinneret.client.ams.AttendanceCaseCaseCreationModel.GetCheckInDateAttendanceCaseCaseCaseCreationModel.java:167位于com.csscorp.presentation.spinneret.client.ams.AttendanceCaseCreationRidEditor$8.HandleEventStatementCaseCaseCreationRidEditor.java:920

尝试以下操作:

public String getCheckinDate() 
{
   final Date date = (Date) get( "CheckinDate" );
   return date == null ? null : date.toString();
}

从getCheckinDate.toString中删除toString。

我通过下面的代码更改解决了这个问题

public String getCheckinDate() {

    if(get("checkinDate")==null)
            return null;
        else 
            return get("checkinDate").toString();


            }

现在,如果不为null,它将返回一个字符串。如果为null,它将返回null。

请在AttendanceCaseCreationModel.java中发布第164行。请发布getcheckinDate的方法定义。这是BaseModelData类中的方法。当您获取checkinDate时,您应该调用toString,然后再调用它。更新了我的答案。让我试试这个。我认为它应该只返回字符串。我认为这行中的问题返回getcheckinDate;我正在从dateField获取日期,并尝试将其作为字符串返回。任何熟悉GXT的人,请建议。
public String getCheckinDate() {

    if(get("checkinDate")==null)
            return null;
        else 
            return get("checkinDate").toString();


            }