Class ClassUtils

java.lang.Object
cool.scx.common.util.ClassUtils

public final class ClassUtils extends Object

类工具类

如需高级功能 请使用 scx-reflect 模块

Version:
0.0.1
Author:
scx567888
  • Constructor Details

    • ClassUtils

      public ClassUtils()
  • Method Details

    • isEnum

      public static boolean isEnum(Class<?> c)
      判断是否为 Enum , Class.isEnum() 无法处理内部类的情况
    • getEnumClass

      public static Class<?> getEnumClass(Class<?> c)
      获取 Enum 类的真实类 包括内部类的情况
    • isInstantiableClass

      public static boolean isInstantiableClass(Class<?> c)
      是否是可以实例化的类 如果类的构造函数是私有的 我们便假设此类不想让我们进行实例化
    • isNormalClass

      public static boolean isNormalClass(Class<?> c)
      是一个普通类 既不是 接口也不是 抽象类
    • getCodeSource

      public static URI getCodeSource(Class<?> source)
      根据 class 获取源地址
      Parameters:
      source - a Class object.
      Returns:
      可能是 目录 也可能是 jar 文件
    • getAppRoot

      public static Path getAppRoot(URI codeSource)
      根据 codeSource 获取 app 根路径(文件夹)
      Parameters:
      codeSource - 参考 getCodeSource(Class)
      Returns:
      app 根路径(文件夹)
    • getAppRoot

      public static Path getAppRoot(Class<?> source)
      根据 class 获取 app 根路径(文件夹)
      Parameters:
      source - s
      Returns:
      app 根路径(文件夹)
    • isJar

      public static boolean isJar(Path path)
      判断路径是否是一个 jar 文件 (这里只是简单的使用 文件后缀判断,并不准确)
    • filterByBasePackage

      public static Class<?>[] filterByBasePackage(Class<?>[] classList, String basePackageName)
      根据 basePackage 对 class 进行过滤
    • findClassListFromJar

      public static Class<?>[] findClassListFromJar(URI jarFileURI) throws IOException
      读取 jar 包中的所有 class
      Throws:
      IOException
    • findClassListFromPath

      public static Class<?>[] findClassListFromPath(Path classRootPath, ClassLoader classLoader) throws IOException
      根据文件获取 class 列表
      Throws:
      IOException