简体   繁体   English

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

[英]creating a new object of Java class returns a null object

I have created a new class 'ServiceRequest' like below. 我创建了一个新的类“ ServiceRequest”,如下所示。 I have not added getters and setters here to save space. 我没有在这里添加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;
 }
}

When I try to create an instance of this object in other class like this, it returns a null object. 当我尝试在这样的其他类中创建此对象的实例时,它将返回一个空对象。

  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;
}

Can anybody tell me what to do? 谁能告诉我该怎么办?

I don't like this code: 我不喜欢此代码:

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

when he meant "null object", he meant that object has nothing in it (his serviceRequest string). 当他表示“空对象”时,表示该对象中没有任何东西(他的serviceRequest字符串)。 As Beau Grantham said "this" will get job done 正如博·格兰瑟姆(Beau Grantham)所说,“这”将完成工作

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM