mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8336847: Use pattern match switch in NumberFormat classes
Reviewed-by: liach, naoto
This commit is contained in:
parent
9e8e359513
commit
5a8861a3a1
3 changed files with 118 additions and 143 deletions
|
@ -302,34 +302,34 @@ public abstract class NumberFormat extends Format {
|
|||
public StringBuffer format(Object number,
|
||||
StringBuffer toAppendTo,
|
||||
FieldPosition pos) {
|
||||
if (number instanceof Long || number instanceof Integer ||
|
||||
number instanceof Short || number instanceof Byte ||
|
||||
number instanceof AtomicInteger || number instanceof AtomicLong ||
|
||||
(number instanceof BigInteger &&
|
||||
((BigInteger)number).bitLength() < 64)) {
|
||||
return format(((Number)number).longValue(), toAppendTo, pos);
|
||||
} else if (number instanceof Number) {
|
||||
return format(((Number)number).doubleValue(), toAppendTo, pos);
|
||||
} else {
|
||||
throw new IllegalArgumentException("Cannot format given Object as a Number");
|
||||
}
|
||||
return switch (number) {
|
||||
case Long l -> format(l.longValue(), toAppendTo, pos);
|
||||
case Integer i -> format(i.longValue(), toAppendTo, pos);
|
||||
case Short s -> format(s.longValue(), toAppendTo, pos);
|
||||
case Byte b -> format(b.longValue(), toAppendTo, pos);
|
||||
case AtomicInteger ai -> format(ai.longValue(), toAppendTo, pos);
|
||||
case AtomicLong al -> format(al.longValue(), toAppendTo, pos);
|
||||
case BigInteger bi when bi.bitLength() < 64 -> format(bi.longValue(), toAppendTo, pos);
|
||||
case Number n -> format(n.doubleValue(), toAppendTo, pos);
|
||||
case null, default -> throw new IllegalArgumentException("Cannot format given Object as a Number");
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
StringBuf format(Object number,
|
||||
StringBuf toAppendTo,
|
||||
FieldPosition pos) {
|
||||
if (number instanceof Long || number instanceof Integer ||
|
||||
number instanceof Short || number instanceof Byte ||
|
||||
number instanceof AtomicInteger || number instanceof AtomicLong ||
|
||||
(number instanceof BigInteger &&
|
||||
((BigInteger) number).bitLength() < 64)) {
|
||||
return format(((Number) number).longValue(), toAppendTo, pos);
|
||||
} else if (number instanceof Number) {
|
||||
return format(((Number) number).doubleValue(), toAppendTo, pos);
|
||||
} else {
|
||||
throw new IllegalArgumentException("Cannot format given Object as a Number");
|
||||
}
|
||||
return switch (number) {
|
||||
case Long l -> format(l.longValue(), toAppendTo, pos);
|
||||
case Integer i -> format(i.longValue(), toAppendTo, pos);
|
||||
case Short s -> format(s.longValue(), toAppendTo, pos);
|
||||
case Byte b -> format(b.longValue(), toAppendTo, pos);
|
||||
case AtomicInteger ai -> format(ai.longValue(), toAppendTo, pos);
|
||||
case AtomicLong al -> format(al.longValue(), toAppendTo, pos);
|
||||
case BigInteger bi when bi.bitLength() < 64 -> format(bi.longValue(), toAppendTo, pos);
|
||||
case Number n -> format(n.doubleValue(), toAppendTo, pos);
|
||||
case null, default -> throw new IllegalArgumentException("Cannot format given Object as a Number");
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue