143 144 /** Does the VM support polymorphic method handle invocation? 145 * Affects the linkage information output to the classfile. 146 * An alias for {@code hasInvokedynamic}, since all the JSR 292 features appear together. 147 */ 148 public boolean hasMethodHandles() { 149 return hasInvokedynamic(); 150 } 151 152 /** Does the target JDK contain StringConcatFactory class? 153 */ 154 public boolean hasStringConcatFactory() { 155 return compareTo(JDK1_9) >= 0; 156 } 157 158 /** Value of platform release used to access multi-release jar files 159 */ 160 public String multiReleaseValue() { 161 return Integer.toString(this.ordinal() - Target.JDK1_1.ordinal() + 1); 162 } 163 } | 143 144 /** Does the VM support polymorphic method handle invocation? 145 * Affects the linkage information output to the classfile. 146 * An alias for {@code hasInvokedynamic}, since all the JSR 292 features appear together. 147 */ 148 public boolean hasMethodHandles() { 149 return hasInvokedynamic(); 150 } 151 152 /** Does the target JDK contain StringConcatFactory class? 153 */ 154 public boolean hasStringConcatFactory() { 155 return compareTo(JDK1_9) >= 0; 156 } 157 158 /** Value of platform release used to access multi-release jar files 159 */ 160 public String multiReleaseValue() { 161 return Integer.toString(this.ordinal() - Target.JDK1_1.ordinal() + 1); 162 } 163 164 /** Does the target VM support nestmate access? 165 */ 166 public boolean hasNestmateAccess() { 167 return compareTo(JDK1_11) >= 0; 168 } 169 170 /** Does the target VM support virtual private invocations? 171 */ 172 public boolean hasVirtualPrivateInvoke() { 173 return compareTo(JDK1_11) >= 0; 174 } 175 176 } |