# Reflect Learning **Repository Path**: tzj2015/reflect-learning ## Basic Information - **Project Name**: Reflect Learning - **Description**: Java 反射常见使用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-20 - **Last Updated**: 2021-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### Java 反射常见使用 #### 获取父类的所有属性(private/public/protected) ```java Field[] superDeclaredFields = clazz.getSuperclass().getDeclaredFields(); Stream.of(superDeclaredFields).forEach(System.out::println); ``` #### 获取当前类的所有属性(private/public/protected) ```java Field[] declaredFields = clazz.getDeclaredFields(); Stream.of(declaredFields).forEach(System.out::println); ``` #### 只能拿到 public 字段(当前类和父类) ```java Field[] fields = clazz.getFields(); Stream.of(fields).forEach(System.out::println); ``` #### 无参构造函数创建对象 ```java User user = clazz.getConstructor().newInstance(); System.out.println("Empty Constructor Created: " + user); ``` #### 有参构造函数创建对象 ```java User jason = clazz.getConstructor(String.class, String.class).newInstance("Jason", "24"); System.out.println("Non-empty Constructor Created: " + jason); ```