TICS Coding Standard Viewer 
TIOBE Software Quality Framework
Print-friendly version
©TIOBE Software www.tiobe.com
 
TIOBE - Java Coding Standard
Search

Rule:  Basic24Checked automatically with code checker

Synopsis:An operation on an Immutable object (BigDecimal or BigInteger) won't change the object itself
Language:Java
Severity Level:1
Category:Basic


Description:
An operation on an Immutable object (BigDecimal or BigInteger) won't change the object itself. The result of the operation is a new object. Therefore, ignoring the operation result is an error.
import java.math.*;
class Test {
 void method1() {
  BigDecimal bd=new BigDecimal(10);
  bd.add(new BigDecimal(5)); // this will trigger the rule
 }
 void method2() {
  BigDecimal bd=new BigDecimal(10);
  bd = bd.add(new BigDecimal(5)); // this won't trigger the rule
 }
}

Justification:

The value of the immutable object instance cannot be change after it's created. When we attempt to alter the internal fields of an immutable object, the reference of the respective object it is changed to refer to a new instance of that type.