public class TypeUtils
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
TypeUtils.Cache |
(package private) static class |
TypeUtils.X1 |
(package private) static class |
TypeUtils.X2 |
| Modifier and Type | Field and Description |
|---|---|
(package private) static double[] |
BIG_10_POW |
static java.math.BigInteger |
BIGINT_INT32_MAX |
static java.math.BigInteger |
BIGINT_INT32_MIN |
static java.math.BigInteger |
BIGINT_INT64_MAX |
static java.math.BigInteger |
BIGINT_INT64_MIN |
static java.math.BigInteger |
BIGINT_JAVASCRIPT_HIGH |
static java.math.BigInteger |
BIGINT_JAVASCRIPT_LOW |
(package private) static TypeUtils.Cache |
CACHE |
(package private) static java.util.concurrent.atomic.AtomicReferenceFieldUpdater<TypeUtils.Cache,char[]> |
CHARS_UPDATER |
static java.lang.Class |
CLASS_JSON_ARRAY_1x |
static java.lang.Class |
CLASS_JSON_OBJECT_1x |
static java.lang.Class |
CLASS_SINGLE_LIST |
static java.lang.Class |
CLASS_SINGLE_SET |
static java.lang.Class |
CLASS_UNMODIFIABLE_COLLECTION |
static java.lang.Class |
CLASS_UNMODIFIABLE_LIST |
static java.lang.Class |
CLASS_UNMODIFIABLE_NAVIGABLE_SET |
static java.lang.Class |
CLASS_UNMODIFIABLE_SET |
static java.lang.Class |
CLASS_UNMODIFIABLE_SORTED_SET |
static java.lang.reflect.Field |
FIELD_JSON_OBJECT_1x_map |
private static double |
L |
(package private) static long |
LONG_JAVASCRIPT_HIGH |
(package private) static long |
LONG_JAVASCRIPT_LOW |
(package private) static java.lang.invoke.MethodHandle |
METHOD_NEW_PROXY_INSTANCE |
(package private) static boolean |
METHOD_NEW_PROXY_INSTANCE_ERROR |
static java.lang.invoke.MethodType |
METHOD_TYPE_BI_CONSUMER |
static java.lang.invoke.MethodType |
METHOD_TYPE_BI_FUNCTION |
static java.lang.invoke.MethodType |
METHOD_TYPE_DOUBLE_FUNCTION |
static java.lang.invoke.MethodType |
METHOD_TYPE_FUNCTION |
static java.lang.invoke.MethodType |
METHOD_TYPE_INT_FUNCTION |
static java.lang.invoke.MethodType |
METHOD_TYPE_INT_OBJECT |
static java.lang.invoke.MethodType |
METHOD_TYPE_LONG_FUNCTION |
static java.lang.invoke.MethodType |
METHOD_TYPE_LONG_OBJECT |
static java.lang.invoke.MethodType |
METHOD_TYPE_OBJECT |
static java.lang.invoke.MethodType |
METHOD_TYPE_OBJECT_DOUBLE |
static java.lang.invoke.MethodType |
METHOD_TYPE_OBJECT_INT |
static java.lang.invoke.MethodType |
METHOD_TYPE_OBJECT_INT_CONSUMER |
static java.lang.invoke.MethodType |
METHOD_TYPE_OBJECT_LONG |
static java.lang.invoke.MethodType |
METHOD_TYPE_OBJECT_OBJECT |
static java.lang.invoke.MethodType |
METHOD_TYPE_OBJECT_OBJECT_OBJECT |
static java.lang.invoke.MethodType |
METHOD_TYPE_SUPPLIER |
static java.lang.invoke.MethodType |
METHOD_TYPE_TO_INT_FUNCTION |
static java.lang.invoke.MethodType |
METHOD_TYPE_TO_LONG_FUNCTION |
static java.lang.invoke.MethodType |
METHOD_TYPE_VOID |
static java.lang.invoke.MethodType |
METHOD_TYPE_VOID_INT |
static java.lang.invoke.MethodType |
METHOD_TYPE_VOID_LONG |
static java.lang.invoke.MethodType |
METHOD_TYPE_VOID_OBJECT_INT |
static java.lang.invoke.MethodType |
METHOD_TYPE_VOID_STRING |
static java.lang.invoke.MethodType |
METHOD_TYPE_VOO |
(package private) static java.util.Map<java.lang.Class,java.lang.String> |
NAME_MAPPINGS |
private static int |
P_D |
private static int |
P_F |
static java.lang.reflect.ParameterizedType |
PARAM_TYPE_LIST_STR |
private static int |
Q_MAX_D |
private static int |
Q_MAX_F |
private static int |
Q_MIN_D |
private static int |
Q_MIN_F |
(package private) static float[] |
SINGLE_SMALL_10_POW |
static double[] |
SMALL_10_POW
All the positive powers of 10 that can be
represented exactly in double/float.
|
(package private) static double[] |
TINY_10_POW |
(package private) static java.util.Map<java.lang.String,java.lang.Class> |
TYPE_MAPPINGS |
| Constructor and Description |
|---|
TypeUtils() |
| Modifier and Type | Method and Description |
|---|---|
static <T> T |
cast(java.lang.Object obj,
java.lang.Class<T> targetClass) |
static <T> T |
cast(java.lang.Object obj,
java.lang.Class<T> targetClass,
ObjectReaderProvider provider) |
static <T> T |
cast(java.lang.Object obj,
java.lang.reflect.Type type) |
static java.lang.Object[] |
cast(java.lang.Object obj,
java.lang.reflect.Type[] types) |
static <T> T |
cast(java.lang.Object obj,
java.lang.reflect.Type type,
ObjectReaderProvider provider) |
static int |
compare(java.lang.Object a,
java.lang.Object b) |
static double |
doubleValue(boolean isNegative,
int decExp,
byte[] digits,
int nDigits) |
static double |
doubleValue(int signNum,
long intCompact,
int scale) |
static float |
floatValue(boolean isNegative,
int decExponent,
byte[] digits,
int nDigits) |
static float |
floatValue(int signNum,
long intCompact,
int scale) |
static java.lang.Class<?> |
getArrayClass(java.lang.Class componentClass) |
static java.lang.Class<?> |
getClass(java.lang.reflect.Type type) |
static java.lang.Object |
getDefaultValue(java.lang.reflect.Type paramType) |
static java.util.Map |
getInnerMap(java.util.Map object) |
static java.lang.Class |
getMapping(java.lang.String typeName) |
static java.lang.Class<?> |
getMapping(java.lang.reflect.Type type) |
static java.lang.reflect.Type |
getMapValueType(java.lang.reflect.Type fieldType) |
static java.lang.String |
getTypeName(java.lang.Class type) |
static boolean |
hasIllegalTypeNameChars(java.lang.String typeName)
Tests whether a type name carries a character that cannot appear in a Java binary class name
but is meaningful in a URL.
|
static java.lang.reflect.Type |
intern(java.lang.reflect.Type type) |
static boolean |
isFunction(java.lang.Class type) |
static boolean |
isInt32(java.math.BigInteger value) |
static boolean |
isInt64(java.math.BigInteger value) |
static boolean |
isInteger(java.math.BigDecimal decimal)
decimal is integer, check has non-zero small
|
static boolean |
isInteger(byte[] str,
int off,
int len) |
static boolean |
isInteger(char[] str,
int off,
int len) |
static boolean |
isInteger(java.lang.String str) |
static boolean |
isJavaScriptSupport(java.math.BigDecimal decimal) |
static boolean |
isJavaScriptSupport(java.math.BigInteger i) |
static boolean |
isJavaScriptSupport(long i) |
static boolean |
isNumber(byte[] str,
int off,
int len) |
static boolean |
isNumber(char[] str,
int off,
int len) |
static boolean |
isNumber(java.lang.String str) |
static boolean |
isProxy(java.lang.Class<?> clazz) |
static boolean |
isUUID(java.lang.String str) |
static java.lang.Class |
loadClass(java.lang.String className) |
static <T> T |
newProxyInstance(java.lang.Class<T> objectClass,
JSONObject object) |
static java.lang.Class |
nonePrimitive(java.lang.Class type) |
static java.lang.String |
normalizeAcceptName(java.lang.String typeName)
Normalizes a type name the way the autoType accept-list rolling hash normalizes it, so that a
nested class matches whether it is written with its binary name (
a.b.Outer$Inner) or
its canonical name (a.b.Outer.Inner). |
static java.math.BigDecimal |
parseBigDecimal(byte[] bytes,
int off,
int len) |
static java.math.BigDecimal |
parseBigDecimal(char[] bytes,
int off,
int len) |
static java.lang.Boolean |
parseBoolean(byte[] bytes,
int off,
int len) |
static java.lang.Boolean |
parseBoolean(char[] chars,
int off,
int len) |
static double |
parseDouble(byte[] in,
int off,
int len) |
static double |
parseDouble(char[] in,
int off,
int len) |
static float |
parseFloat(byte[] in,
int off,
int len) |
static float |
parseFloat(char[] in,
int off,
int len) |
static int |
parseInt(byte[] bytes,
int off,
int len) |
static int |
parseInt(char[] chars,
int off,
int len) |
static long |
parseLong(byte[] bytes,
int off,
int len) |
static long |
parseLong(char[] chars,
int off,
int len) |
(package private) static char[] |
toAsciiCharArray(byte[] bytes) |
static java.math.BigDecimal |
toBigDecimal(byte[] strBytes) |
static java.math.BigDecimal |
toBigDecimal(char[] chars) |
static java.math.BigDecimal |
toBigDecimal(double d) |
static java.math.BigDecimal |
toBigDecimal(float f) |
static java.math.BigDecimal |
toBigDecimal(long i) |
static java.math.BigDecimal |
toBigDecimal(java.lang.Object value) |
static java.math.BigDecimal |
toBigDecimal(java.lang.String str) |
static java.math.BigInteger |
toBigInteger(java.lang.Object value) |
static java.lang.Boolean |
toBoolean(java.lang.Object value) |
static boolean |
toBooleanValue(java.lang.Object value) |
static java.lang.Byte |
toByte(java.lang.Object value) |
static byte |
toByteValue(java.lang.Object value) |
static java.util.Date |
toDate(java.lang.Object obj) |
static java.lang.Double |
toDouble(java.lang.Object value) |
static double |
toDoubleValue(java.lang.Object value) |
static java.lang.Float |
toFloat(java.lang.Object value) |
static float |
toFloatValue(java.lang.Object value) |
static java.time.Instant |
toInstant(java.lang.Object obj) |
static java.lang.Integer |
toInteger(java.lang.Object value) |
static int |
toIntValue(java.lang.Object value) |
static java.util.List |
toList(java.lang.Object object) |
static java.lang.Long |
toLong(java.lang.Object value) |
static long |
toLongValue(java.lang.Object value) |
static java.lang.Short |
toShort(java.lang.Object value) |
static short |
toShortValue(java.lang.Object value) |
static java.lang.String |
toString(byte ch) |
static java.lang.String |
toString(byte c0,
byte c1) |
static java.lang.String |
toString(char ch) |
static java.lang.String |
toString(char c0,
char c1) |
static java.lang.String[] |
toStringArray(java.lang.Object object) |
static boolean |
validateIPv4(java.lang.String str) |
(package private) static boolean |
validateIPv4(java.lang.String str,
int off) |
static boolean |
validateIPv6(java.lang.String str) |
public static final java.lang.Class CLASS_JSON_OBJECT_1x
public static final java.lang.reflect.Field FIELD_JSON_OBJECT_1x_map
public static final java.lang.Class CLASS_JSON_ARRAY_1x
public static final java.lang.Class CLASS_SINGLE_SET
public static final java.lang.Class CLASS_SINGLE_LIST
public static final java.lang.Class CLASS_UNMODIFIABLE_COLLECTION
public static final java.lang.Class CLASS_UNMODIFIABLE_LIST
public static final java.lang.Class CLASS_UNMODIFIABLE_SET
public static final java.lang.Class CLASS_UNMODIFIABLE_SORTED_SET
public static final java.lang.Class CLASS_UNMODIFIABLE_NAVIGABLE_SET
public static final java.lang.reflect.ParameterizedType PARAM_TYPE_LIST_STR
public static final java.lang.invoke.MethodType METHOD_TYPE_SUPPLIER
public static final java.lang.invoke.MethodType METHOD_TYPE_FUNCTION
public static final java.lang.invoke.MethodType METHOD_TYPE_TO_INT_FUNCTION
public static final java.lang.invoke.MethodType METHOD_TYPE_TO_LONG_FUNCTION
public static final java.lang.invoke.MethodType METHOD_TYPE_OBJECT_INT_CONSUMER
public static final java.lang.invoke.MethodType METHOD_TYPE_INT_FUNCTION
public static final java.lang.invoke.MethodType METHOD_TYPE_LONG_FUNCTION
public static final java.lang.invoke.MethodType METHOD_TYPE_DOUBLE_FUNCTION
public static final java.lang.invoke.MethodType METHOD_TYPE_BI_FUNCTION
public static final java.lang.invoke.MethodType METHOD_TYPE_BI_CONSUMER
public static final java.lang.invoke.MethodType METHOD_TYPE_VOO
public static final java.lang.invoke.MethodType METHOD_TYPE_OBJECT
public static final java.lang.invoke.MethodType METHOD_TYPE_OBJECT_OBJECT
public static final java.lang.invoke.MethodType METHOD_TYPE_INT_OBJECT
public static final java.lang.invoke.MethodType METHOD_TYPE_LONG_OBJECT
public static final java.lang.invoke.MethodType METHOD_TYPE_VOID_OBJECT_INT
public static final java.lang.invoke.MethodType METHOD_TYPE_OBJECT_LONG
public static final java.lang.invoke.MethodType METHOD_TYPE_OBJECT_DOUBLE
public static final java.lang.invoke.MethodType METHOD_TYPE_VOID_LONG
public static final java.lang.invoke.MethodType METHOD_TYPE_OBJECT_OBJECT_OBJECT
public static final java.lang.invoke.MethodType METHOD_TYPE_VOID
public static final java.lang.invoke.MethodType METHOD_TYPE_VOID_INT
public static final java.lang.invoke.MethodType METHOD_TYPE_VOID_STRING
public static final java.lang.invoke.MethodType METHOD_TYPE_OBJECT_INT
static final long LONG_JAVASCRIPT_LOW
static final long LONG_JAVASCRIPT_HIGH
public static final java.math.BigInteger BIGINT_INT32_MIN
public static final java.math.BigInteger BIGINT_INT32_MAX
public static final java.math.BigInteger BIGINT_INT64_MIN
public static final java.math.BigInteger BIGINT_INT64_MAX
public static final java.math.BigInteger BIGINT_JAVASCRIPT_LOW
public static final java.math.BigInteger BIGINT_JAVASCRIPT_HIGH
public static final double[] SMALL_10_POW
static final float[] SINGLE_SMALL_10_POW
static final double[] BIG_10_POW
static final double[] TINY_10_POW
static volatile boolean METHOD_NEW_PROXY_INSTANCE_ERROR
static volatile java.lang.invoke.MethodHandle METHOD_NEW_PROXY_INSTANCE
static final TypeUtils.Cache CACHE
static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<TypeUtils.Cache,char[]> CHARS_UPDATER
static final java.util.Map<java.lang.Class,java.lang.String> NAME_MAPPINGS
static final java.util.Map<java.lang.String,java.lang.Class> TYPE_MAPPINGS
private static final int P_D
private static final int Q_MIN_D
private static final int Q_MAX_D
private static final double L
private static final int P_F
private static final int Q_MIN_F
private static final int Q_MAX_F
public static <T> T newProxyInstance(java.lang.Class<T> objectClass,
JSONObject object)
static char[] toAsciiCharArray(byte[] bytes)
public static java.lang.String toString(char ch)
public static java.lang.String toString(byte ch)
public static java.lang.String toString(char c0,
char c1)
public static java.lang.String toString(byte c0,
byte c1)
public static java.lang.reflect.Type intern(java.lang.reflect.Type type)
public static double parseDouble(byte[] in,
int off,
int len)
throws java.lang.NumberFormatException
java.lang.NumberFormatExceptionpublic static double parseDouble(char[] in,
int off,
int len)
throws java.lang.NumberFormatException
java.lang.NumberFormatExceptionpublic static float parseFloat(byte[] in,
int off,
int len)
throws java.lang.NumberFormatException
java.lang.NumberFormatExceptionpublic static float parseFloat(char[] in,
int off,
int len)
throws java.lang.NumberFormatException
java.lang.NumberFormatExceptionpublic static double doubleValue(boolean isNegative,
int decExp,
byte[] digits,
int nDigits)
public static float floatValue(boolean isNegative,
int decExponent,
byte[] digits,
int nDigits)
public static java.lang.Class<?> getMapping(java.lang.reflect.Type type)
public static java.util.Date toDate(java.lang.Object obj)
public static java.time.Instant toInstant(java.lang.Object obj)
public static java.lang.Object[] cast(java.lang.Object obj,
java.lang.reflect.Type[] types)
public static java.lang.String[] toStringArray(java.lang.Object object)
public static <T> T cast(java.lang.Object obj,
java.lang.reflect.Type type)
public static <T> T cast(java.lang.Object obj,
java.lang.reflect.Type type,
ObjectReaderProvider provider)
public static <T> T cast(java.lang.Object obj,
java.lang.Class<T> targetClass)
public static <T> T cast(java.lang.Object obj,
java.lang.Class<T> targetClass,
ObjectReaderProvider provider)
public static java.lang.String getTypeName(java.lang.Class type)
public static java.lang.Class getMapping(java.lang.String typeName)
public static java.math.BigDecimal toBigDecimal(java.lang.Object value)
public static java.math.BigDecimal toBigDecimal(long i)
public static java.math.BigDecimal toBigDecimal(float f)
public static java.math.BigDecimal toBigDecimal(double d)
public static java.math.BigDecimal toBigDecimal(java.lang.String str)
public static java.math.BigDecimal toBigDecimal(char[] chars)
public static java.math.BigDecimal toBigDecimal(byte[] strBytes)
public static boolean isInt32(java.math.BigInteger value)
public static boolean isInt64(java.math.BigInteger value)
public static boolean isInteger(java.math.BigDecimal decimal)
decimal - the BigDecimal value to checkpublic static java.math.BigInteger toBigInteger(java.lang.Object value)
public static java.lang.Long toLong(java.lang.Object value)
public static long toLongValue(java.lang.Object value)
public static java.lang.Boolean parseBoolean(byte[] bytes,
int off,
int len)
public static java.lang.Boolean parseBoolean(char[] chars,
int off,
int len)
public static int parseInt(byte[] bytes,
int off,
int len)
public static int parseInt(char[] chars,
int off,
int len)
public static long parseLong(byte[] bytes,
int off,
int len)
public static long parseLong(char[] chars,
int off,
int len)
public static java.math.BigDecimal parseBigDecimal(char[] bytes,
int off,
int len)
public static java.math.BigDecimal parseBigDecimal(byte[] bytes,
int off,
int len)
public static java.lang.Integer toInteger(java.lang.Object value)
public static java.lang.Byte toByte(java.lang.Object value)
public static byte toByteValue(java.lang.Object value)
public static java.lang.Short toShort(java.lang.Object value)
public static short toShortValue(java.lang.Object value)
public static int toIntValue(java.lang.Object value)
public static boolean toBooleanValue(java.lang.Object value)
public static java.lang.Boolean toBoolean(java.lang.Object value)
public static float toFloatValue(java.lang.Object value)
public static java.lang.Float toFloat(java.lang.Object value)
public static double toDoubleValue(java.lang.Object value)
public static java.lang.Double toDouble(java.lang.Object value)
public static int compare(java.lang.Object a,
java.lang.Object b)
public static java.lang.Object getDefaultValue(java.lang.reflect.Type paramType)
public static boolean hasIllegalTypeNameChars(java.lang.String typeName)
jar:http://host/x.jar!/ is
resolvable by some class loaders, so a type name carrying one must never reach one.
Every autoType entry point shares this predicate; validating in only some of them is the asymmetry that lets a type name reach a class loader through the unchecked path.
Internal, public only because the autoType entry points live in different packages.
typeName - the type name to testpublic static java.lang.String normalizeAcceptName(java.lang.String typeName)
a.b.Outer$Inner) or
its canonical name (a.b.Outer.Inner). Following that existing rolling-hash rule means
the two spellings are equivalent as accept entries.
Internal, public only because the autoType entry points live in different packages.
typeName - the type name to normalizepublic static java.lang.Class loadClass(java.lang.String className)
public static java.lang.Class<?> getArrayClass(java.lang.Class componentClass)
public static java.lang.Class nonePrimitive(java.lang.Class type)
public static java.lang.Class<?> getClass(java.lang.reflect.Type type)
public static boolean isProxy(java.lang.Class<?> clazz)
public static java.util.Map getInnerMap(java.util.Map object)
public static boolean isFunction(java.lang.Class type)
public static boolean isInteger(java.lang.String str)
public static boolean isInteger(byte[] str,
int off,
int len)
public static boolean isInteger(char[] str,
int off,
int len)
public static boolean isNumber(java.lang.String str)
public static boolean isNumber(byte[] str,
int off,
int len)
public static boolean isNumber(char[] str,
int off,
int len)
public static boolean isUUID(java.lang.String str)
public static boolean validateIPv4(java.lang.String str)
static boolean validateIPv4(java.lang.String str,
int off)
public static boolean validateIPv6(java.lang.String str)
public static double doubleValue(int signNum,
long intCompact,
int scale)
public static float floatValue(int signNum,
long intCompact,
int scale)
public static boolean isJavaScriptSupport(long i)
public static boolean isJavaScriptSupport(java.math.BigDecimal decimal)
public static boolean isJavaScriptSupport(java.math.BigInteger i)
public static java.lang.reflect.Type getMapValueType(java.lang.reflect.Type fieldType)
public static java.util.List toList(java.lang.Object object)