Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich frage in meinem Programm einen Paramter und dessen Value ab. Der Parameter heißt "HALBZEUG" und der Value ist "Brennteil". Zu Testzwecken ist der Parameter+Value vorhanden und gesetzt.
Code:
Parameter halb = model.GetParam("HALBZEUG");
ParamValue halb_value = halb.GetValue();
String inhalt = halb_value.GetStringValue(); //inhalt==Brennteil
if(getModelType(curSession, model) == "PART"){
if(inhalt == "Brennteil"){
String text = "Parameter-Value ist "+inhalt+". Auslesen - Erfolg!";
JOptionPane.showMessageDialog(null, text);
}
else{
String text = "Model ist PART, aber HALBZEUG="+inhalt+" erfüllt nicht die Bedingung";
JOptionPane.showMessageDialog(null, text);
}
}
Die erste if-Bedingung ist erfüllt!
In der Variable inhalt steht hier jetzt "Brennteil", aber mein Programm springt trotzdem immer in den else-Zweig der inneren if-Schleife. Dort erhalte ich in der Ausgabe "...HALBZEUG=Brennteil..."!!! Also sehe ich ja hier, dass inhalt==Brennteil ist.
Nur warum wird das in der if-Abfrage irgendwie ignoriert??? :?:
klassischer Fehler: eine String-Variable niemals mit dem ==-Operator vergleichen. Anstelle die Methode equals verwenden. Deine Zeile 7 müsste wie folgt aussehen:
Jetzt hab ich das ganze mal soweit abgeändert, dass auch berücksichtigt werden soll, wenn der Paramter Halbzeug gar nicht existiert:
Code:
if(getModelType(curSession, model) == "PART"){
Parameter halb = model.GetParam("HALBZEUG");
if(halb.GetIsDesignated()==true){ //Parameter vorhanden ja/nein
ParamValue halb_value = halb.GetValue();
String inhalt = halb_value.GetStringValue(); //inhalt==Brennteil
if(inhalt.equals("Brennteil")){
String text = "Parameter HALBZEUG="+inhalt+". Auslesen - Erfolg!";
JOptionPane.showMessageDialog(null, text);
}
else{
String text = "Model ist PART, aber HALBZEUG ist nicht Brennteil - erfüllt nicht die Bedingung";
JOptionPane.showMessageDialog(null, text);
}
}
else{
String text = "Model ist PART, aber HALBZEUG existiert nicht - erfüllt nicht die Bedingung";
JOptionPane.showMessageDialog(null, text);
}
}
Getestet an einem Model, wo der Parameter Halbzeug gar nicht existiert, erhalte ich rein gar keine Ausgabe - auch keine Fehlermeldung o.ä.!
Hab ich hier wieder irgendwas übersehen???
Wenn model.GetParam("HALBZEUG") null liefert, dann kommt es in Deinem Code zu einer NullPointerException. Wird die vielleicht irgendwo abgefangen und ignoriert?