###
JAVA java
### Class
Class Class Java Class :
1.
```java
Class alunbarClass = TargetObject.class;
```
Class
2. `Class.forName()`
```java
Class alunbarClass1 = Class.forName("cn.javaguide.TargetObject");
```
###
**!**
1. `TargetObject`
```java
package cn.javaguide;
public class TargetObject {
private String value;
public TargetObject() {
value = "JavaGuide";
}
public void publicMethod(String s) {
System.out.println("I love " + s);
}
private void privateMethod() {
System.out.println("value is " + value);
}
}
```
2.
```java
package cn.javaguide;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchFieldException {
/**
* TargetObjectClassTargetObject
*/
Class tagetClass = Class.forName("cn.javaguide.TargetObject");
TargetObject targetObject = (TargetObject) tagetClass.newInstance();
/**
*
*/
Method[] methods = tagetClass.getDeclaredMethods();
for (Method method : methods) {
System.out.println(method.getName());
}
/**
*
*/
Method publicMethod = tagetClass.getDeclaredMethod("publicMethod",
String.class);
publicMethod.invoke(targetObject, "JavaGuide");
/**
*
*/
Field field = tagetClass.getDeclaredField("value");
//
field.setAccessible(true);
field.set(targetObject, "JavaGuide");
/**
* private
*/
Method privateMethod = tagetClass.getDeclaredMethod("privateMethod");
//private
privateMethod.setAccessible(true);
privateMethod.invoke(targetObject);
}
}
```
```
publicMethod
privateMethod
I love JavaGuide
value is JavaGuide
```
###
- ****
- ****
###
- ****
- **** 1, JVM java 2,
###
****
SpringHibernate
1. JDBC `Class.forName()`
2. Spring IOC Bean AOP
3.
4. ......
****
- [Java]( https://zhuanlan.zhihu.com/p/80519709)
- [ReflectionJava ](https://segmentfault.com/a/1190000010162647?utm_source=tuicool&utm_medium=referral)
- [Java ](https://blog.csdn.net/sinat_38259539/article/details/71799078)
##