derletztekick: in einer Methode zusammenfassen

Beitrag lesen

Hallo Daniel Thoma,

zunächst Danke für Deine Antwort. Mein JAVA Wissen ist leider nicht so komplex und besteht mehr aus den Grundlagen und einer Menge Try-and-Error Versuchen, wenn ich das mal so zusammenfassen darf. Mit fällt es daher schwer, auch nur eine Deiner drei Möglichkeiten zu interpretieren...

Also zuerst einmal würde es stark zur Übersichtlichkeit beitragen, wenn Du Dir überflüssige Verwenung von "this" sparst ;-)

Ich hatte mal gehört/gelesen, das es sauberer wäre, ist dem nicht so?

Wenn Du Deine Datenstruktur nicht verändern willst, musst Du irgendwie den Parameter, auf den zugegriffen werden soll, parametrisieren.

Natürlich bin ich auch für eine Veränderung der Datenstruktur offen, da die Berechnung eher simple sind, wie Du an der Clothoid.class sehen kannst, in der ich Deinen 1. Vorschlag eingesetzt habe.

Dein erster Vorschlag klang noch verständlich und sah augenscheinlich auch recht einfach aus - sah ;).

  1. Annonyme Klasse und Interface:

public static interface Parameter {
  double getValue();
}

public void getParameters(double value, Parameter parameter){
  int loop = 0;
  while (Math.abs(end_index - start_index) > tol && ++loop < stop_loop && end_index > start_index) {
    getParametersFromL(0.5 * (start_index + end_index));
    if (parameter.getValue() > value) {
      end_index = 0.5 * (start_index + end_index);
    } else if (parameter.getValue() < value) {
      start_index = 0.5 * (start_index + end_index);
    } else {
      break;
    }
  }
}

//Aufruf:
getParameters(value, new Parameter() {public double getValue() {return x}});

  
Ich habe in der Class Deine Methode und die Änderung übernommen. In der main-Methode kann ich aber keinen Aufruf machen:  
  
~~~java
  
    Clothoid CD = new Clothoid();  
    CD.getParameters(0.005, new Parameter() {public double getValue() {return x;}});  

Fehlermeldung:
Compiliere C:\mclass.java mit Java-Compiler
mclass.java:13: cannot find symbol
symbol  : class Parameter
location: class mclass
    CD.getParameters(0.005, new Parameter() {public double getValue() {return x;}});
                                ^
1 error

Kannst Du mir da noch einen Tipp geben?

Mit freundlichem Gruß
Micha

--
LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript