创建Java类的新对象将返回空对象

创建Java类的新对象将返回空对象,java,class,Java,Class,我创建了一个新类“ServiceRequest”,如下所示。我没有在这里添加getter和setter来节省空间 package testListenerPackage; import java.util.Date; public class ServiceRequest { public static final ServiceRequest REQUEST_ARRIVAL = new ServiceRequest( "Request_Arrival" ); public stati

我创建了一个新类“ServiceRequest”,如下所示。我没有在这里添加getter和setter来节省空间

package testListenerPackage;

import java.util.Date;

public class ServiceRequest {

public static final ServiceRequest REQUEST_ARRIVAL   = new ServiceRequest( "Request_Arrival" );
public static final ServiceRequest REQUEST_COMPLETION   = new ServiceRequest( "Request_Completion" );
public static final ServiceRequest REQUEST_UNDER_PROCESS = new ServiceRequest( "Request_Under_Process" );


private String serviceRequest;
private String requestName;
private int requestID;
private long arrivalTime;
private long startServiceTime;
private long endServiceTime;
private long totalServiceTime;

private String requestStatus;

public enum RequestStatus{
    NEW, COMPLETED
}



public ServiceRequest()
{

}
public ServiceRequest( String serviceRequest ) {
    serviceRequest = serviceRequest;
 }
}
当我尝试在类似这样的其他类中创建此对象的实例时,它返回一个null对象

  public ServiceRequest generateServiceRequest()
{
    ServiceRequest serviceRequest = new ServiceRequest("Ali baba");
    serviceRequest.setRequestID(1);
    serviceRequest.setRequestName("Read");
    serviceRequest.setRequestStatus(ServiceRequest.REQUEST_ARRIVAL.toString());
    serviceRequest.setArrivalTime(System.currentTimeMillis());
    return serviceRequest;
}

有人能告诉我怎么做吗?

我不喜欢这个代码:

public ServiceRequest()
{
    // all those references are null - crazy
}
public ServiceRequest(String serviceRequest ) {
    // use "this" to clarify what's initialized
    this.serviceRequest = serviceRequest;
}

当他指的是“空对象”时,他指的是对象中没有任何内容(他的serviceRequest字符串)。正如Beau Grantham所说,“这”将完成任务

您所说的“返回空对象”是什么意思?您是否收到NullPointerException?哪一行?也是行
serviceRequest=serviceRequest没有完成任何操作。您需要将其更改为
this.serviceRequest=serviceRequest看起来应该可以工作了。是否有其他可能导致故障的代码?您是否已将其精简为发布的代码?可能是以下表达式出现了问题:
ServiceRequest.REQUEST\u ARRIVAL.toString()
。再加上
requestStatus
设置不正确,如果
toString()
只是委托给
requestStatus
,将导致NPE。但这只是猜测,因为该类的完整代码尚未发布。this.serviceRequest工作正常,现在不返回null对象。谢谢你们的帮助。