public final class java.math.MathContext implements java.io.Serializable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: java.math.MathContext
super_class: java.lang.Object
{
private static final int DEFAULT_DIGITS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static final java.math.RoundingMode DEFAULT_ROUNDINGMODE;
descriptor: Ljava/math/RoundingMode;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int MIN_DIGITS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5579720004786848255
public static final java.math.MathContext UNLIMITED;
descriptor: Ljava/math/MathContext;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.math.MathContext DECIMAL32;
descriptor: Ljava/math/MathContext;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.math.MathContext DECIMAL64;
descriptor: Ljava/math/MathContext;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.math.MathContext DECIMAL128;
descriptor: Ljava/math/MathContext;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
final int precision;
descriptor: I
flags: (0x0010) ACC_FINAL
final java.math.RoundingMode roundingMode;
descriptor: Ljava/math/RoundingMode;
flags: (0x0010) ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
putstatic java.math.MathContext.DEFAULT_ROUNDINGMODE:Ljava/math/RoundingMode;
1: new java.math.MathContext
dup
iconst_0
getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
2: putstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
3: new java.math.MathContext
dup
bipush 7
getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
4: putstatic java.math.MathContext.DECIMAL32:Ljava/math/MathContext;
5: new java.math.MathContext
dup
bipush 16
getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
6: putstatic java.math.MathContext.DECIMAL64:Ljava/math/MathContext;
7: new java.math.MathContext
dup
bipush 34
getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
8: putstatic java.math.MathContext.DECIMAL128:Ljava/math/MathContext;
9: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
getstatic java.math.MathContext.DEFAULT_ROUNDINGMODE:Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/MathContext;
0 2 1 setPrecision I
MethodParameters:
Name Flags
setPrecision
public void <init>(int, java.math.RoundingMode);
descriptor: (ILjava/math/RoundingMode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: iload 1
ifge 3
2: new java.lang.IllegalArgumentException
dup
ldc "Digits < 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.math.MathContext int java.math.RoundingMode
StackMap stack:
aload 2
ifnonnull 5
4: new java.lang.NullPointerException
dup
ldc "null RoundingMode"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield java.math.MathContext.precision:I
6: aload 0
aload 2
putfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/math/MathContext;
0 8 1 setPrecision I
0 8 2 setRoundingMode Ljava/math/RoundingMode;
MethodParameters:
Name Flags
setPrecision
setRoundingMode
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ifnonnull 3
2: new java.lang.NullPointerException
dup
ldc "null String"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.math.MathContext java.lang.String
StackMap stack:
aload 1
ldc "precision="
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 4
new java.lang.RuntimeException
dup
invokespecial java.lang.RuntimeException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 1
bipush 32
invokevirtual java.lang.String.indexOf:(I)I
istore 3
start local 3 5: bipush 10
istore 4
start local 4 6: aload 1
bipush 10
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 2
start local 2 7: aload 1
ldc "roundingMode="
iload 3
iconst_1
iadd
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 9
8: new java.lang.RuntimeException
dup
invokespecial java.lang.RuntimeException.<init>:()V
athrow
9: StackMap locals: int int int
StackMap stack:
iload 3
iconst_1
iadd
bipush 13
iadd
istore 4
10: aload 1
iload 4
aload 1
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 5
start local 5 11: aload 0
aload 5
invokestatic java.math.RoundingMode.valueOf:(Ljava/lang/String;)Ljava/math/RoundingMode;
putfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
end local 5 end local 4 end local 3 12: goto 15
end local 2 StackMap locals: java.math.MathContext java.lang.String
StackMap stack: java.lang.RuntimeException
13: pop
14: new java.lang.IllegalArgumentException
dup
ldc "bad string format"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
start local 2 15: StackMap locals: int
StackMap stack:
iload 2
ifge 17
16: new java.lang.IllegalArgumentException
dup
ldc "Digits < 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 0
iload 2
putfield java.math.MathContext.precision:I
18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/math/MathContext;
0 19 1 val Ljava/lang/String;
7 13 2 setPrecision I
15 19 2 setPrecision I
5 12 3 fence I
6 12 4 off I
11 12 5 str Ljava/lang/String;
Exception table:
from to target type
3 12 13 Class java.lang.RuntimeException
MethodParameters:
Name Flags
val
public int getPrecision();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.math.MathContext.precision:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/math/MathContext;
public java.math.RoundingMode getRoundingMode();
descriptor: ()Ljava/math/RoundingMode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/math/MathContext;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.math.MathContext
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast java.math.MathContext
astore 2
start local 2 3: aload 2
getfield java.math.MathContext.precision:I
aload 0
getfield java.math.MathContext.precision:I
if_icmpne 6
4: aload 2
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
aload 0
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
if_acmpne 6
5: iconst_1
ireturn
StackMap locals: java.math.MathContext
StackMap stack:
6: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/math/MathContext;
0 7 1 x Ljava/lang/Object;
3 7 2 mc Ljava/math/MathContext;
MethodParameters:
Name Flags
x
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield java.math.MathContext.precision:I
aload 0
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
invokevirtual java.math.RoundingMode.hashCode:()I
bipush 59
imul
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/math/MathContext;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "precision="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield java.math.MathContext.precision:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc "roundingMode="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
invokevirtual java.math.RoundingMode.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/math/MathContext;
private void readObject(java.io.ObjectInputStream);
descriptor: (Ljava/io/ObjectInputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
1: aload 0
getfield java.math.MathContext.precision:I
ifge 4
2: ldc "MathContext: invalid digits in stream"
astore 2
start local 2 3: new java.io.StreamCorruptedException
dup
aload 2
invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
athrow
end local 2 4: StackMap locals:
StackMap stack:
aload 0
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
ifnonnull 7
5: ldc "MathContext: null roundingMode in stream"
astore 2
start local 2 6: new java.io.StreamCorruptedException
dup
aload 2
invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
athrow
end local 2 7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/math/MathContext;
0 8 1 s Ljava/io/ObjectInputStream;
3 4 2 message Ljava/lang/String;
6 7 2 message Ljava/lang/String;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
MethodParameters:
Name Flags
s
}
SourceFile: "MathContext.java"