fuint-framework/fuint-util/src/main/java/com/fuint/util/ClassUtil.java

(开头部分) 40KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

package com.fuint.util;

import java.lang.reflect.Array;
import java.util.*;

/**
 * 有关 <code>Class</code> 处理的工具类。
 *
 * <p>
 * 这个类中的每个方法都可以“安全”地处理 <code>null</code> ,而不会抛出 <code>NullPointerException</code>。
 * </p>
 *
 * @author Harrison han
 * @version 1.0
 */
public class ClassUtil {
    /* ============================================================================ */
    /* 常量和singleton。                                                            */
    /* ============================================================================ */

    /** 资源文件的分隔符: <code>'/'</code>。 */
    public static final char   RESOURCE_SEPARATOR_CHAR    = '/';

    /** Java类名的分隔符: <code>'.'</code>。 */
    public static final char   PACKAGE_SEPARATOR_CHAR     = '.';

    /** Java类名的分隔符: <code>"."</code>。 */
    public static final String PACKAGE_SEPARATOR          = String.valueOf(PACKAGE_SEPARATOR_CHAR);

    /** 内联类的分隔符: <code>'$'</code>。 */
    public static final char   INNER_CLASS_SEPARATOR_CHAR = '$';

    /** 内联类的分隔符: <code>"$"</code>。 */
    public static final String INNER_CLASS_SEPARATOR      = String
                                                              .valueOf(INNER_CLASS_SEPARATOR_CHAR);

    /** 所有类的信息表,包括父类, 接口, 数组的维数等信息。 */
    private static Map         TYPE_MAP                   = Collections
                                                              .synchronizedMap(new WeakHashMap());

    /* ============================================================================ */
    /* 取得类名和package名的方法。                                                  */
    /* ============================================================================ */

    /**
     * 取得对象所属的类的直观类名。
     *
     * <p>
     * 相当于 <code>object.getClass().getName()</code> ,但不同的是,该方法用更直观的方式显示数组类型。 例如:
     * <pre>
     *  int[].class.getName() = "[I" ClassUtil.getClassName(int[].class) = "int[]"
     *
     *  Integer[][].class.getName() = "[[Ljava.lang.Integer;" ClassUtil.getClassName(Integer[][].class) = "java.lang.Integer[][]"
     *  </pre>
     * </p>
     *
     * <p>
     * 对于非数组的类型,该方法等效于 <code>Class.getName()</code> 方法。
     * </p>
     *
后面还有 1192 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。