Object im Konstruktor auf NULL setzten



  • Hallo ich habe eine Klasse, der ich im Konstruktor verschiedene Parameter übergebe. Unter anderem eine ID - ID aus einer Datenbank. Ich möchte nun wenn die ID ungültig ist - also kleiner gleich 0, dass das object nicht angelegt wird.

    Also ich will das in diesem Fall der Konstruktor abbricht und kein Object dieser Klasse erzeugt wird. Kann mir jemand helfen ?

    Hier der Quellcode :

    public TestVariantResult(int testVariantResultID,
    	    String testVariantResultStartTimeStamp,
    	    String testVariantResultEndTimeStamp,
    	    String testVariantResultFailureDescription,
    	    String testVariantResultRunManualComment,
    	    String testVariantResultErrorType)
        {
    	// check if testVariantResultID is not <= 0
    	if (testVariantResultID <= 0)
    	{
    	    LoggingManager.printErrorMessage("testVariantResultID <= 0. Can't create TestVariantResult object!");
    	    return;	    
    	}
    	else
    	{
    	    this.testVariantResultID = testVariantResultID;    
    	}	...
    


  • Wirf eine Exception.



  • Was spricht dagegen diese Abfrage vor dem Erzeugen des Objektes durchzuführen?



  • Bashar hat Recht, wirf eine Exception (in diesem Fall IllegalArgumentException). Den else-Zweig kannst du dir im Übrigen sparen, dadurch wird es meiner Meinung nach nur unübersichtlich.

    if(testVariantResultID <= 0) {
      throw new IllegalArgumentException("testVariantResultID must be > 0");
    }
    
    this.testVariantResultID = testVariantResultID;
    
    // ...
    


  • Oder den Konstruktor private machen und Objekte nur über eine create-Methode erzeugen, die die Abfrage macht und ggf null zurück gibt.


Anmelden zum Antworten