2011-12-19 10 views
0

私は以下のように新しいクラス 'ServiceRequest'を作成しました。私はスペースを節約するためにここにゲッターとセッターを追加していません。Javaクラスの新しいオブジェクトを作成するとヌルオブジェクトが返されます

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

誰でも教えてください。

+0

「nullオブジェクトを返します」とはどういう意味ですか?あなたはNullPointerExceptionを取得していますか?どの線? –

+5

コンストラクタの 'serviceRequest = serviceRequest;'行も何も達成していません。これを 'this.serviceRequest = serviceRequest; 'に変更する必要があります。 –

+0

うまくいくようです。問題を引き起こす可能性のある他のコードがありますか?あなたはそれを削除して、投稿されたコードを_just_しましたか? – cdeszaq

答えて

1

私はこのコードを好きではない:

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

this.serviceRequestは機能しましたが、nullオブジェクトが返されません。助けてくれてありがとう。 – Junaid

0

彼は「nullオブジェクト」を意味するとき、彼は、オブジェクトがそれで何も(彼のserviceRequest文字列)を持っていないことを意味しました。 Beau Grantham氏は「これは」仕事が完了すると述べています

関連する問題