2016-09-08 4 views
0

Analog of StringBuilder for BigDecimalBIGDECIMAL Alternative wie String

checkte ich diesen Link schon, aber ich bin mit Sonar und es gibt kritische Fehler für unten Linien:

..... 
BigDecimal total = new BigDecimal(0); 

for (int loop = 0; loop <= 30; loop++) { 
    switch (loop) { 
     case 0: total.add(new BigDecimal(StringValue here)); break; 
     case 1: total.add(new BigDecimal(stringValue here)); break; 
     case 2: total.add(new BigDecimal(stringValue here)); break; 
     //... and so on. 

Jede Hilfe, wie man diese Fehler zu beheben. Muss ich diesen kritischen Fehler, der durch Sonar markiert wurde, falsch positiv machen?

Antwort

0

BigDecimals sind unveränderlich. Daher ist add() eine Methode, die einen neuenBigDecimal mit dem gewünschten Wert zurückgibt. Ihr Code ignoriert das Ergebnis und total wird nicht geändert, was bedeutet, dass Ihr Code, so wie er ist, nichts nützliches tut. Tun Sie etwas wie das Folgende:

switch (loop) 
{ 
    case 0: total = total.add(new BigDecimal(whatever)); break; 
    // etc...