簡體   English   中英

實例化一個類-Java

[英]Instantiate a class - java


我有一個帶有參數id和Class的枚舉類。

ENUM1(1, class.class);

private int id;
private Class<?> clazz;

ENUM(int id, Class<?> clazz) {
    this.id = id;
    this.clazz = clazz;

}

該類實現抽象接口。
但是,如何訪問“ class.class”的公共方法?

提前致謝!

您可以使用反射API從Class執行以下操作。

Object obj = object.getClass().newInstance();//instantiates using default constructor provided that there are no checked exceptions thrown. Consider `Constructor` instead
object.getClass().getDeclaredMethod("ImPublicMethodName", param1, param2).invoke(object);

考慮為什么Class.newInstance()是“邪惡的”? 我會用類似的東西:

    Constructor<?> ctor = clazz.getDeclaredConstructor();
    Object obj = ctor.newInstance();
    Method method = clazz.getDeclaredMethod("yourMethod");
    method.invoke(obj);

getDeclaredXZY方法還可以選擇采用參數的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM