Konstruktor auf null prüfen, Arrays

Mister K.

Mitglied
Hallo community,

ich komme nicht weiter...Folgendes soll ich machen:
3. Schreiben Sie einen Konstruktor, der ein eindimensionales Array vom Typ Point[] ubergeben bekommt.
Sollte null ubergeben worden sein, so machen Sie eine Fehlerausgabe uber stderr, andernfalls uberprufen
Sie die einzelnen Eintrage des Feldes. Sollte ein Feldeintrag null sein, ersetzen Sie ihn durch einen neuen
Punkt mit den Koordinaten (0,0). Speichern Sie anschlieend das ubergebene Array in Ihrem Attribut p.

Java:
public class Polygon {
	private Point [] p;

	public Polygon(Point[] p){			//Konstruktor
		this.p = p;
		if(p = null){                               // Meckert eclipse, vorschlag p!=Null
			System.err.println("Fehler");
		}
		for (int i=0; i<p.length; i++){
			if(p[i] = (null)){

			}else

		}


Ich weiß einfach nicht, wie ich prüfe ob null übergeben wurde. auch weiß ich nicht, wie ich in den einzelnen Feldern auf null prüfe.

Bitte helft mir weite! Vielen Dank

Mit freundlichen Grüßen
 
Java:
public class Polygon {
    private Point [] p;
 
    public Polygon(Point[] p){          //Konstruktor
        if(p == null){                               // mit == überprüfst du, mit = weist du zu
            System.err.println("Fehler");
        }
        
        
        for (int i=0; i<p.length; i++){
            if(p[i] == (null)){
            p[i]=0,0;
            }
        
        }
        this.p = p;
     }
}

Mit = weist du einen Wert zu.
Mit == überprüfst du einen Wert.
 
nur eine Ausgabe bei p == null ist auch zuwenig, der Code danach kommt noch dran, gibt gleich NullPointerException,
da wird System.err dann auch noch gut gefüllt (falls nicht irgendwo abgefangen)
 
Da hat SlaterB recht.

Ich würde hier an der Stelle

Java:
throw new Exception("null pointer");
verwenden
 
Besser wäre

Java:
        if( p == null ) {
            System.err.println( "Fehler" );
            throw new IllegalArgumentException( "p must not be null" );
        }
 
ohne Code oder Fehlermeldung zu posten..

oder ist bei dir weiterhin eine leere Zeile im Editor?
worin kann die Schwierigkeit sein, ein Punkt mit Koordinaten 0,0 zu erzeugen?
worin kann die Schwierigkeit sein, diesen Punkt der aktuellen Array-Position zuzuweisen?

bei Mitarbeit kann man jedes Problem besprechen,
aber nur Schweigen/ Problem und eigene Unzufriedenheit zu nennen, keinen anderen Ansatz als 'Lösung posten' zu bieten,
das ist eine eher unangenehme Sache von deiner Seite, überdenke das bitte
 
ja, sorry.
also wenn ich wie vorgeschlagen, dass p=0,0; schreibe, funktioniert das nicht. Syntax error on token ",", invalid AssignmentOperator

Außerdem soll es doch ein 1D Feld sein, wie kann ich dann dort zwei Koordinaten speichern?
 
Java:
private void testEntrys(Point[] tp){
		for(int i=0; i< tp.length; i++){
			if(tp[i] == null){
				tp[i] = new Point(0, 0);
			}
		}
	}
 

Neue Themen


Zurück
Oben