< prev index next >
src/java.base/share/classes/jdk/internal/misc/JavaLangAccess.java
Print this page
*** 28,37 ****
--- 28,38 ----
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,263 ****
--- 255,294 ----
* 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 >