Servus,
das kapiere ich gerade nicht.
Ich bekomme einen Null Pointer in der compare-Methode einer inneren Klasse als Comparator - wie geht das, denn ich kann die Methode doch nur aufrufen, wenn ich die beiden zu vergleichenden Objekte mitschicke?
Beim Zugriff auf u1 oder u2 krachts - mal so mal so?!
	
	
	
	
	
		
	
			
			das kapiere ich gerade nicht.
Ich bekomme einen Null Pointer in der compare-Methode einer inneren Klasse als Comparator - wie geht das, denn ich kann die Methode doch nur aufrufen, wenn ich die beiden zu vergleichenden Objekte mitschicke?
Beim Zugriff auf u1 oder u2 krachts - mal so mal so?!
		Java:
	
	// Baum der die Umkreise vorhaelt
		umkreisBaum = new TreeSet<Umkreis>( new Comparator<Umkreis>(){
			@Override
			public int compare( Umkreis u1, Umkreis u2 )
			{
				// Comparator
				// Umkreise werden nach deren Radius in den Baum eingeordnet. 
				// Hier reicht der Radiusvergleichswert eines Kreises, um die Ordnung zu 
				// erstellen und der Winkelvergleichswert um zu testen, ob der Winkel 
				// des ersten kleiner als der Winkel des groesseren Kreises ist. Spaeter 
				// kann man mit der Winkelvergleichszahl auch errechnen. ob der Winkel 
				// kleiner gleich 90 Grad ist.
				// Der groesste Umkreis liegt oben im Baum und wird als uTop gegriffen.
				
				// Ganzzahlvariante
				//System.out.println("KleinsterKreis - Baum mit Umkreisen anlegen - vergleichen von ");
				//System.out.println("U1-a: " + u1.a.xWert + "; "+ u1.a.yWert + "| U1-b: " + u1.b.xWert + "; " + u1.b.yWert + "| U1-c: " + u1.c.xWert + "; " + u1.c.yWert + "|");
				//System.out.println("U2-a: " + u2.a.xWert + "; "+ u2.a.yWert + "| U2-b: " + u2.b.xWert + "; " + u2.b.yWert + "| U2-c: " + u2.c.xWert + "; " + u2.c.yWert + "|");
				
				// TODO durchdenken ob hier nicht double besser waere und was beim Cast schiefgehen kann
				
				System.out.println( "KleinsterKreis - compare() - im Vergleich ");
				System.out.println( " --> u1 mit a: " + u1.a.toString() + " b: " + u1.b.toString() + " c: " + u1.c.toString() + " wvw:" + u1.winkelVergleichsWert );
				System.out.println( " --> u2 mit a: " + u2.a.toString() + " b: " + u2.b.toString() + " c: " + u2.c.toString() + " wvw:" + u2.winkelVergleichsWert );
				
				int erg = u1.istRadiusKleinerAlsVergleichsUmkreis(u2);
				
				if ( erg == 1 )
				{
					// u1 groesser als u2
					//System.out.println(" --> Kreis U1 groesser als U2.");
					return 1; 
				}
......
	
			
				Zuletzt bearbeitet: