public final class java.lang.Runtime$Version implements java.lang.Comparable<java.lang.Runtime$Version>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: java.lang.Runtime$Version
super_class: java.lang.Object
{
private final java.util.List<java.lang.Integer> version;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/Integer;>;
private final java.util.Optional<java.lang.String> pre;
descriptor: Ljava/util/Optional;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Optional<Ljava/lang/String;>;
private final java.util.Optional<java.lang.Integer> build;
descriptor: Ljava/util/Optional;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Optional<Ljava/lang/Integer;>;
private final java.util.Optional<java.lang.String> optional;
descriptor: Ljava/util/Optional;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Optional<Ljava/lang/String;>;
private void <init>(java.util.List<java.lang.Integer>, java.util.Optional<java.lang.String>, java.util.Optional<java.lang.Integer>, java.util.Optional<java.lang.String>);
descriptor: (Ljava/util/List;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield java.lang.Runtime$Version.version:Ljava/util/List;
2: aload 0
aload 2
putfield java.lang.Runtime$Version.pre:Ljava/util/Optional;
3: aload 0
aload 3
putfield java.lang.Runtime$Version.build:Ljava/util/Optional;
4: aload 0
aload 4
putfield java.lang.Runtime$Version.optional:Ljava/util/Optional;
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/Runtime$Version;
0 6 1 unmodifiableListOfVersions Ljava/util/List<Ljava/lang/Integer;>;
0 6 2 pre Ljava/util/Optional<Ljava/lang/String;>;
0 6 3 build Ljava/util/Optional<Ljava/lang/Integer;>;
0 6 4 optional Ljava/util/Optional<Ljava/lang/String;>;
Signature: (Ljava/util/List<Ljava/lang/Integer;>;Ljava/util/Optional<Ljava/lang/String;>;Ljava/util/Optional<Ljava/lang/Integer;>;Ljava/util/Optional<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
unmodifiableListOfVersions
pre
build
optional
public static java.lang.Runtime$Version parse(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Runtime$Version;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=8, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.Runtime$Version.isSimpleNumber:(Ljava/lang/String;)Z
ifeq 6
3: new java.lang.Runtime$Version
dup
aload 0
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic java.util.List.of:(Ljava/lang/Object;)Ljava/util/List;
4: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
5: invokespecial java.lang.Runtime$Version.<init>:(Ljava/util/List;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V
areturn
6: StackMap locals:
StackMap stack:
getstatic java.lang.Runtime$VersionPattern.VSTR_PATTERN:Ljava/util/regex/Pattern;
aload 0
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 1
start local 1 7: aload 1
invokevirtual java.util.regex.Matcher.matches:()Z
ifne 11
8: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid version string: '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: java.util.regex.Matcher
StackMap stack:
aload 1
ldc "VNUM"
invokevirtual java.util.regex.Matcher.group:(Ljava/lang/String;)Ljava/lang/String;
ldc "\\."
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 12: aload 2
arraylength
anewarray java.lang.Integer
astore 3
start local 3 13: iconst_0
istore 4
start local 4 14: goto 17
15: StackMap locals: java.lang.String[] java.lang.Integer[] int
StackMap stack:
aload 3
iload 4
aload 2
iload 4
aaload
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
16: iinc 4 1
StackMap locals:
StackMap stack:
17: iload 4
aload 2
arraylength
if_icmplt 15
end local 4 18: aload 1
ldc "PRE"
invokevirtual java.util.regex.Matcher.group:(Ljava/lang/String;)Ljava/lang/String;
19: invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
astore 4
start local 4 20: aload 1
ldc "BUILD"
invokevirtual java.util.regex.Matcher.group:(Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 21: aload 5
ifnonnull 23
22: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
goto 24
23: StackMap locals: java.lang.String java.util.regex.Matcher java.lang.String[] java.lang.Integer[] java.util.Optional java.lang.String
StackMap stack:
aload 5
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
24: StackMap locals:
StackMap stack: java.util.Optional
astore 6
start local 6 25: aload 1
ldc "OPT"
invokevirtual java.util.regex.Matcher.group:(Ljava/lang/String;)Ljava/lang/String;
26: invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
astore 7
start local 7 27: aload 6
invokevirtual java.util.Optional.isPresent:()Z
ifne 42
28: aload 1
ldc "PLUS"
invokevirtual java.util.regex.Matcher.group:(Ljava/lang/String;)Ljava/lang/String;
ifnull 38
29: aload 7
invokevirtual java.util.Optional.isPresent:()Z
ifeq 35
30: aload 4
invokevirtual java.util.Optional.isPresent:()Z
ifeq 42
31: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "'+' found with pre-release and optional components:'"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
32: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
35: StackMap locals: java.util.Optional java.util.Optional
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "'+' found with neither build or optional components: '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
36: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
37: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
38: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.util.Optional.isPresent:()Z
ifeq 42
aload 4
invokevirtual java.util.Optional.isPresent:()Z
ifne 42
39: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "optional component must be preceeded by a pre-release component or '+': '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
40: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
41: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
42: StackMap locals:
StackMap stack:
new java.lang.Runtime$Version
dup
aload 3
invokestatic java.util.List.of:([Ljava/lang/Object;)Ljava/util/List;
aload 4
aload 6
aload 7
invokespecial java.lang.Runtime$Version.<init>:(Ljava/util/List;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 s Ljava/lang/String;
7 43 1 m Ljava/util/regex/Matcher;
12 43 2 split [Ljava/lang/String;
13 43 3 version [Ljava/lang/Integer;
14 18 4 i I
20 43 4 pre Ljava/util/Optional<Ljava/lang/String;>;
21 43 5 b Ljava/lang/String;
25 43 6 build Ljava/util/Optional<Ljava/lang/Integer;>;
27 43 7 optional Ljava/util/Optional<Ljava/lang/String;>;
MethodParameters:
Name Flags
s
private static boolean isSimpleNumber(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 9
2: StackMap locals: int
StackMap stack:
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
istore 2
start local 2 3: iload 1
ifle 4
bipush 48
goto 5
StackMap locals: int
StackMap stack:
4: bipush 49
StackMap locals:
StackMap stack: int
5: istore 3
start local 3 6: iload 2
iload 3
if_icmplt 7
iload 2
bipush 57
if_icmple 8
7: StackMap locals: int
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 8: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
9: iload 1
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 2
end local 1 10: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 s Ljava/lang/String;
1 10 1 i I
3 8 2 c C
6 8 3 lowerBound C
MethodParameters:
Name Flags
s
public int feature();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Runtime$Version;
public int interim();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 1
aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/Runtime$Version;
public int update();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_2
if_icmple 1
aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
iconst_2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/Runtime$Version;
public int patch();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_3
if_icmple 1
aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
iconst_3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/Runtime$Version;
public int major();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Runtime$Version.feature:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Runtime$Version;
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "10")
public int minor();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Runtime$Version.interim:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Runtime$Version;
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "10")
public int security();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Runtime$Version.update:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Runtime$Version;
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "10")
public java.util.List<java.lang.Integer> version();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Runtime$Version;
Signature: ()Ljava/util/List<Ljava/lang/Integer;>;
public java.util.Optional<java.lang.String> pre();
descriptor: ()Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Runtime$Version.pre:Ljava/util/Optional;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Runtime$Version;
Signature: ()Ljava/util/Optional<Ljava/lang/String;>;
public java.util.Optional<java.lang.Integer> build();
descriptor: ()Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Runtime$Version.build:Ljava/util/Optional;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Runtime$Version;
Signature: ()Ljava/util/Optional<Ljava/lang/Integer;>;
public java.util.Optional<java.lang.String> optional();
descriptor: ()Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Runtime$Version.optional:Ljava/util/Optional;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Runtime$Version;
Signature: ()Ljava/util/Optional<Ljava/lang/String;>;
public int compareTo(java.lang.Runtime$Version);
descriptor: (Ljava/lang/Runtime$Version;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual java.lang.Runtime$Version.compare:(Ljava/lang/Runtime$Version;Z)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Runtime$Version;
0 1 1 obj Ljava/lang/Runtime$Version;
MethodParameters:
Name Flags
obj
public int compareToIgnoreOptional(java.lang.Runtime$Version);
descriptor: (Ljava/lang/Runtime$Version;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual java.lang.Runtime$Version.compare:(Ljava/lang/Runtime$Version;Z)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Runtime$Version;
0 1 1 obj Ljava/lang/Runtime$Version;
MethodParameters:
Name Flags
obj
private int compare(java.lang.Runtime$Version, boolean);
descriptor: (Ljava/lang/Runtime$Version;Z)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.Runtime$Version.compareVersion:(Ljava/lang/Runtime$Version;)I
istore 3
start local 3 3: iload 3
ifeq 5
4: iload 3
ireturn
5: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.Runtime$Version.comparePre:(Ljava/lang/Runtime$Version;)I
istore 3
6: iload 3
ifeq 8
7: iload 3
ireturn
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.Runtime$Version.compareBuild:(Ljava/lang/Runtime$Version;)I
istore 3
9: iload 3
ifeq 11
10: iload 3
ireturn
11: StackMap locals:
StackMap stack:
iload 2
ifne 13
12: aload 0
aload 1
invokevirtual java.lang.Runtime$Version.compareOptional:(Ljava/lang/Runtime$Version;)I
ireturn
13: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/lang/Runtime$Version;
0 14 1 obj Ljava/lang/Runtime$Version;
0 14 2 ignoreOpt Z
3 14 3 ret I
MethodParameters:
Name Flags
obj
ignoreOpt
private int compareVersion(java.lang.Runtime$Version);
descriptor: (Ljava/lang/Runtime$Version;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
invokeinterface java.util.List.size:()I
istore 2
start local 2 1: aload 1
invokevirtual java.lang.Runtime$Version.version:()Ljava/util/List;
invokeinterface java.util.List.size:()I
istore 3
start local 3 2: iload 2
iload 3
invokestatic java.lang.Math.min:(II)I
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 10
5: StackMap locals: java.lang.Runtime$Version java.lang.Runtime$Version int int int int
StackMap stack:
aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 6
start local 6 6: aload 1
invokevirtual java.lang.Runtime$Version.version:()Ljava/util/List;
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 7
start local 7 7: iload 6
iload 7
if_icmpeq 9
8: iload 6
iload 7
isub
ireturn
end local 7 end local 6 9: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
iload 4
if_icmplt 5
end local 5 11: iload 2
iload 3
isub
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/lang/Runtime$Version;
0 12 1 obj Ljava/lang/Runtime$Version;
1 12 2 size I
2 12 3 oSize I
3 12 4 min I
4 11 5 i I
6 9 6 val I
7 9 7 oVal I
MethodParameters:
Name Flags
obj
private int comparePre(java.lang.Runtime$Version);
descriptor: (Ljava/lang/Runtime$Version;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Runtime$Version.pre:()Ljava/util/Optional;
astore 2
start local 2 1: aload 0
getfield java.lang.Runtime$Version.pre:Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifne 4
2: aload 2
invokevirtual java.util.Optional.isPresent:()Z
ifeq 17
3: iconst_1
ireturn
4: StackMap locals: java.util.Optional
StackMap stack:
aload 2
invokevirtual java.util.Optional.isPresent:()Z
ifne 6
5: iconst_m1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.Runtime$Version.pre:Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 7: aload 2
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 8: aload 3
ldc "\\d+"
invokevirtual java.lang.String.matches:(Ljava/lang/String;)Z
ifeq 13
9: aload 4
ldc "\\d+"
invokevirtual java.lang.String.matches:(Ljava/lang/String;)Z
ifeq 11
10: new java.math.BigInteger
dup
aload 3
invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;)V
new java.math.BigInteger
dup
aload 4
invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;)V
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
goto 12
11: StackMap locals: java.lang.String java.lang.String
StackMap stack:
iconst_m1
12: StackMap locals:
StackMap stack: int
ireturn
13: StackMap locals:
StackMap stack:
aload 4
ldc "\\d+"
invokevirtual java.lang.String.matches:(Ljava/lang/String;)Z
ifeq 15
14: iconst_1
goto 16
15: StackMap locals:
StackMap stack:
aload 3
aload 4
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
16: StackMap locals:
StackMap stack: int
ireturn
end local 4 end local 3 17: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/lang/Runtime$Version;
0 18 1 obj Ljava/lang/Runtime$Version;
1 18 2 oPre Ljava/util/Optional<Ljava/lang/String;>;
7 17 3 val Ljava/lang/String;
8 17 4 oVal Ljava/lang/String;
MethodParameters:
Name Flags
obj
private int compareBuild(java.lang.Runtime$Version);
descriptor: (Ljava/lang/Runtime$Version;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Runtime$Version.build:()Ljava/util/Optional;
astore 2
start local 2 1: aload 2
invokevirtual java.util.Optional.isPresent:()Z
ifeq 6
2: aload 0
getfield java.lang.Runtime$Version.build:Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 4
3: aload 0
getfield java.lang.Runtime$Version.build:Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.Integer
aload 2
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.compareTo:(Ljava/lang/Integer;)I
goto 5
4: StackMap locals: java.util.Optional
StackMap stack:
iconst_m1
5: StackMap locals:
StackMap stack: int
ireturn
6: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.Runtime$Version.build:Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 8
7: iconst_1
ireturn
8: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/Runtime$Version;
0 9 1 obj Ljava/lang/Runtime$Version;
1 9 2 oBuild Ljava/util/Optional<Ljava/lang/Integer;>;
MethodParameters:
Name Flags
obj
private int compareOptional(java.lang.Runtime$Version);
descriptor: (Ljava/lang/Runtime$Version;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Runtime$Version.optional:()Ljava/util/Optional;
astore 2
start local 2 1: aload 0
getfield java.lang.Runtime$Version.optional:Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifne 4
2: aload 2
invokevirtual java.util.Optional.isPresent:()Z
ifeq 7
3: iconst_m1
ireturn
4: StackMap locals: java.util.Optional
StackMap stack:
aload 2
invokevirtual java.util.Optional.isPresent:()Z
ifne 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.Runtime$Version.optional:Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.String
aload 2
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
ireturn
7: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/lang/Runtime$Version;
0 8 1 obj Ljava/lang/Runtime$Version;
1 8 2 oOpt Ljava/util/Optional<Ljava/lang/String;>;
MethodParameters:
Name Flags
obj
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
1: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/Object.toString()Ljava/lang/String; (5)
(Ljava/lang/Integer;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
2: ldc "."
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.lang.String
3: invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: astore 1
start local 1 5: aload 0
getfield java.lang.Runtime$Version.pre:Ljava/util/Optional;
aload 1
invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
java/lang/Runtime$Version.lambda$1(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
(Ljava/lang/String;)V
invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
6: aload 0
getfield java.lang.Runtime$Version.build:Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 11
7: aload 1
ldc "+"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.lang.Runtime$Version.build:Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
8: aload 0
getfield java.lang.Runtime$Version.optional:Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 16
9: aload 1
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.lang.Runtime$Version.optional:Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: goto 16
11: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 0
getfield java.lang.Runtime$Version.optional:Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 16
12: aload 1
aload 0
getfield java.lang.Runtime$Version.pre:Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 13
ldc "-"
goto 14
StackMap locals:
StackMap stack: java.lang.StringBuilder
13: ldc "+-"
StackMap locals: java.lang.Runtime$Version java.lang.StringBuilder
StackMap stack: java.lang.StringBuilder java.lang.String
14: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: aload 1
aload 0
getfield java.lang.Runtime$Version.optional:Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljava/lang/Runtime$Version;
5 17 1 sb Ljava/lang/StringBuilder;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Runtime$Version.equalsIgnoreOptional:(Ljava/lang/Object;)Z
istore 2
start local 2 1: iload 2
ifne 3
2: iconst_0
ireturn
3: StackMap locals: int
StackMap stack:
aload 1
checkcast java.lang.Runtime$Version
astore 3
start local 3 4: aload 0
invokevirtual java.lang.Runtime$Version.optional:()Ljava/util/Optional;
aload 3
invokevirtual java.lang.Runtime$Version.optional:()Ljava/util/Optional;
invokevirtual java.util.Optional.equals:(Ljava/lang/Object;)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/lang/Runtime$Version;
0 5 1 obj Ljava/lang/Object;
1 5 2 ret Z
4 5 3 that Ljava/lang/Runtime$Version;
MethodParameters:
Name Flags
obj
public boolean equalsIgnoreOptional(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 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Runtime$Version
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast java.lang.Runtime$Version
astore 2
start local 2 5: aload 0
invokevirtual java.lang.Runtime$Version.version:()Ljava/util/List;
aload 2
invokevirtual java.lang.Runtime$Version.version:()Ljava/util/List;
invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
ifeq 9
6: aload 0
invokevirtual java.lang.Runtime$Version.pre:()Ljava/util/Optional;
aload 2
invokevirtual java.lang.Runtime$Version.pre:()Ljava/util/Optional;
invokevirtual java.util.Optional.equals:(Ljava/lang/Object;)Z
ifeq 9
7: aload 0
invokevirtual java.lang.Runtime$Version.build:()Ljava/util/Optional;
aload 2
invokevirtual java.lang.Runtime$Version.build:()Ljava/util/Optional;
invokevirtual java.util.Optional.equals:(Ljava/lang/Object;)Z
ifeq 9
8: iconst_1
ireturn
StackMap locals: java.lang.Runtime$Version
StackMap stack:
9: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/lang/Runtime$Version;
0 10 1 obj Ljava/lang/Object;
5 10 2 that Ljava/lang/Runtime$Version;
MethodParameters:
Name Flags
obj
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: iconst_1
istore 1
start local 1 1: bipush 17
istore 2
start local 2 2: iload 2
iload 1
imul
aload 0
getfield java.lang.Runtime$Version.version:Ljava/util/List;
invokeinterface java.util.List.hashCode:()I
iadd
istore 1
3: iload 2
iload 1
imul
aload 0
getfield java.lang.Runtime$Version.pre:Ljava/util/Optional;
invokevirtual java.util.Optional.hashCode:()I
iadd
istore 1
4: iload 2
iload 1
imul
aload 0
getfield java.lang.Runtime$Version.build:Ljava/util/Optional;
invokevirtual java.util.Optional.hashCode:()I
iadd
istore 1
5: iload 2
iload 1
imul
aload 0
getfield java.lang.Runtime$Version.optional:Ljava/util/Optional;
invokevirtual java.util.Optional.hashCode:()I
iadd
istore 1
6: iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/Runtime$Version;
1 7 1 h I
2 7 2 p I
public int compareTo(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.lang.Runtime$Version
invokevirtual java.lang.Runtime$Version.compareTo:(Ljava/lang/Runtime$Version;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
private static void lambda$1(java.lang.StringBuilder, java.lang.String);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 v Ljava/lang/String;
}
Signature: Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/Runtime$Version;>;
SourceFile: "Runtime.java"
NestHost: java.lang.Runtime
InnerClasses:
public final Version = java.lang.Runtime$Version of java.lang.Runtime
private VersionPattern = java.lang.Runtime$VersionPattern of java.lang.Runtime
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles