< prev index next >

src/java.base/share/classes/jdk/internal/misc/JavaLangAccess.java

Print this page

        

@@ -28,10 +28,11 @@
 import java.lang.annotation.Annotation;
 import java.lang.module.ModuleDescriptor;
 import java.lang.reflect.Executable;
 import java.lang.reflect.Method;
 import java.net.URI;
+import java.nio.charset.Charset;
 import java.security.AccessControlContext;
 import java.security.ProtectionDomain;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;

@@ -254,10 +255,40 @@
      * given class loader.
      */
     Stream<ModuleLayer> layers(ClassLoader loader);
 
     /**
+     * Constructs a new {@code String} by decoding the specified subarray of
+     * bytes using the specified {@linkplain java.nio.charset.Charset charset}.
+     *
+     * The caller of this method shall relinquish and transfer the ownership of
+     * the byte array to the callee since the later will not make a copy.
+     *
+     * @param bytes the byte array source
+     * @param cs the Charset
+     * @return the newly created string
+     * @throws IllegalArgumentException for malformed or unmappable bytes
+     */
+    String newStringNoRepl(byte[] bytes, Charset cs);
+
+    /**
+     * Encode the given string into a sequence of bytes using the specified Charset.
+     *
+     * This method avoids copying the String's internal representation if the input
+     * is ASCII.
+     *
+     * This method throws IllegalArgumentException instead of replacing when
+     * malformed input or unmappable characters are encountered.
+     *
+     * @param s the string to encode
+     * @param cs the charset
+     * @return the encoded bytes
+     * @throws IllegalArgumentException for malformed input or unmappable characters
+     */
+    byte[] getBytesNoRepl(String s, Charset cs);
+
+    /**
      * Returns a new string by decoding from the given utf8 bytes array.
      *
      * @param off the index of the first byte to decode
      * @param len the number of bytes to decode
      * @return the newly created string
< prev index next >