Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
3.0.0 PDFBox
-
None
-
None
-
Patch
Description
Using the primitive type here uses both less memory and also reduces overhead because less boxing/unboxing needs to be done.
I changed value from `private Float value` to `private final float`.
I also changed the formatting code in two small details:
- using BigDecimal is really just necessary, if the value is formatted to scientific notation. Since Float.toString() is called anyway, we can check for presence of an exponent ('E') and if none is found, return the already created string.
- I removed the trimZeroes() method and let BigDecimal handle this so that the zeroes are removed before converting to a string.
I left valueAsString to be computed lazily when the string representation is not already known in the constructor call. It would also be possible to make valueAsString final, but then it might be computed unnecessarily, if formatString() is never called on the instance.