Heim >Java >javaLernprogramm >Java-Reflektionsfall (nicht verpassen)

Java-Reflektionsfall (nicht verpassen)

藏色散人
藏色散人nach vorne
2020-06-12 13:25:371946Durchsuche

Das Folgende ist ein Java-Reflexionsfall, der in der Tutorial-Kolumne Java-Lernen vorgestellt wurde. Ich hoffe, dass er Freunden in Not hilfreich sein wird!

Java-Reflektionsfall (nicht verpassen)

Java Reflection Case

Anforderungen

Schreiben Sie ein „Framework“, das keinen Code dieser Klasse ändern kann Unter der Prämisse kann es uns helfen, Objekte jeder Art zu erstellen und jede Methode

unter Verwendung von

Konfigurationsdatei

Reflection

Schritte

Definieren Sie den vollständigen Klassennamen des zu erstellenden Objekts und die auszuführende Methode in der Konfigurationsdatei

Laden und lesen Sie die Konfiguration Datei im Programm

Reflektionstechnologie verwenden, um Klassendateien in den Speicher zu laden

Objekt erstellen

Methode ausführen

Konfigurationsdatei

Java-Reflektionsfall (nicht verpassen)

className=Student
methodName=sleep

Code

import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;
/**
 * @author tanglei
 * @date 2020/6/11 3:10 下午
 */
public class ReflectTest {
    public static void main(String[] args) throws Exception {
        Student s = new Student();
        Properties pro = new Properties();
        //获取配置文件的路径
        ClassLoader classLoader = ReflectTest.class.getClassLoader();
        InputStream is = classLoader.getResourceAsStream("pro.properties");
        pro.load(is);
        String className = pro.getProperty("className");
        String methodName = pro.getProperty("methodName");
        //加载类进内存
        Class cla = Class.forName(className);
        Object obj = cla.newInstance();
        //加载方法进内存
        Method method = cla.getMethod(methodName);
        method.invoke(obj);
    }
}

Das obige ist der detaillierte Inhalt vonJava-Reflektionsfall (nicht verpassen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen