mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8210031: implementation for JVM Constants API
Co-authored-by: Brian Goetz <brian.goetz@oracle.com> Reviewed-by: jrose, mcimadamore, darcy, mchung, rriggs, dholmes, forax
This commit is contained in:
parent
b80d335354
commit
9846588b31
72 changed files with 6719 additions and 103 deletions
|
@ -28,6 +28,9 @@ package java.lang;
|
|||
import java.io.ObjectStreamField;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.lang.annotation.Native;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.lang.constant.Constable;
|
||||
import java.lang.constant.ConstantDesc;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
@ -35,6 +38,7 @@ import java.util.Comparator;
|
|||
import java.util.Formatter;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Spliterator;
|
||||
import java.util.StringJoiner;
|
||||
import java.util.function.Function;
|
||||
|
@ -127,7 +131,8 @@ import static java.util.function.Predicate.not;
|
|||
*/
|
||||
|
||||
public final class String
|
||||
implements java.io.Serializable, Comparable<String>, CharSequence {
|
||||
implements java.io.Serializable, Comparable<String>, CharSequence,
|
||||
Constable, ConstantDesc {
|
||||
|
||||
/**
|
||||
* The value is used for character storage.
|
||||
|
@ -3538,4 +3543,30 @@ public final class String
|
|||
throw new IllegalArgumentException(
|
||||
format("Not a valid Unicode code point: 0x%X", codePoint));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a nominal descriptor for this instance, which is the instance
|
||||
* itself.
|
||||
*
|
||||
* @return an {@link Optional} describing the {@linkplain String} instance
|
||||
* @since 12
|
||||
*/
|
||||
@Override
|
||||
public Optional<String> describeConstable() {
|
||||
return Optional.of(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves this instance as a {@link ConstantDesc}, the result of which is
|
||||
* the instance itself.
|
||||
*
|
||||
* @param lookup ignored
|
||||
* @return the {@linkplain String} instance
|
||||
* @since 12
|
||||
*/
|
||||
@Override
|
||||
public String resolveConstantDesc(MethodHandles.Lookup lookup) {
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue