ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### Class * Class对象 ``` Class cls = int.class; System.err.println(cls); cls = byte.class; System.err.println(cls); cls = String[][].class; System.err.println(cls); cls = void.class; System.err.println(cls); ``` * Class对象的比较操作 ``` if (e.getClass() == Employee.class) ``` ### 获取Class对象的三种方式 1. 知道一个类,直接获取Class对象 ``` Class<?> cls1 = ReflectionActivity.class; ``` 2. 如果已经得到了某个对象,可以通过这个对象获取 Class 对象 ``` ReflectionActivity activity = new ReflectionActivity(); Class<?> cls2 = activity.getClass(); ``` 3. 如果你在编译期获取不到目标类型,但是你知道它的完整类路径,那么你可以通过如下的形式来获取 Class 对象,这样获取可能会抛出异常 ClassNotFoundException ``` try { Class<?> cls3 = Class.forName("com.sun.study.ui.activity.ReflectionActivity"); } catch (ClassNotFoundException e) { e.printStackTrace(); } ``` #### 资源加载 资源可以有子目录,可以是相对路径也可以是绝对路径;如果资源文件在JAR包中也可以被定位到; InputStream stream = Appliction.class.getResourceAsStream\("config/source.txt"\); #### API * isAssignableFrom\(Class cls\) 用来判断一个类Class1和另一个类Class2是否相同或是另一个类的子类或接口; * public static Class forName\(String className\) 返回描述类名为className的Class对象 * toString() ``` public String toString() { return (isInterface() ? "interface " : (isPrimitive() ? "" : "class ")) + getName(); } ``` * public T newInstance\(\) 返回类的实例 ![](https://img.kancloud.cn/ea/a5/eaa5178f7e7aa8755fdd2f27b67022b2_751x552.png) ![](https://img.kancloud.cn/ea/84/ea844aae413890bf4807a4d2b0b8f0a7_769x464.png) ![](https://img.kancloud.cn/39/d2/39d27070bc9ace29cbba632c077e7f93_759x415.png) ![](https://img.kancloud.cn/ed/88/ed88689c35bdffd22c16279d26dc2ee5_763x162.png) #### isArray\(\) ``` User user = new User(); System.err.println(User.class.isArray()); System.err.println(User[].class.isArray()); ```