[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/zfl926/JavaGuide/master/docs/java/basic/reflection.md [Back]  [Original]

### 

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)

## 

Web Proxy Viewer  |  New URL  |  Original Page