
你可以这么写:
class BodyImpl implements Body{
//do something
public static void main(String[] args) {
Type[] interfaces = BodyImplclassgetInterfaces();
ParameterizedType firstInterface = (ParameterizedType) interfaces[0];
Class c = (Class) firstInterfacegetActualTypeArguments()[0];
Systemoutprintln(cgetName()); // prints "AtomEntry"
}
}
就得到你所要的接口参数了!
如果那些需要被反射的Form与FormMain在同一程序集中,可以用Activator类反射Form对象:
Form f = (Form)ActivatorCreateInstance(TypeGetType(name));
然后
fVisible = true;
fShow(); // 非模态,或按模态方式显示 fShowDialog()
注意,name参数必须是要反射的Form对象的带命名空间的名称。
完整代码:
private void ShowWindowByName(string name)
{
Form f = (Form)ActivatorCreateInstance(TypeGetType(name));
fVisible = true;
fShow();
}
调用:
ShowWindowByName(thisGetType()Namespace+""+"Form1");
ShowWindowByName(thisGetType()Namespace+""+"Form2");
针对你的补充:
是呀,还是按照以往的方式,在Form1,Form2上添加控件和事件处理方法。反射的意思是,根据现有的已经制作好的窗体的名字,在运行时动态地创建它的实例,然后Show出来。你可以试试看,先做一个Form1窗体,放上按钮什么的,然后再做FormMain窗体,添加一个按钮,然后在添加Click事件的处理方法,在这方法之中,加入上面的代码。
Java中要用到反射,首先就必须要获取到对应的class对象,在Java中有三种方法获取类对应的class对象。 1、通过类的class属性 2、通过类实例的getClass()方法获取
以上就是关于如何利用java反射,获取属性接口的具体类全部的内容,包括:如何利用java反射,获取属性接口的具体类、通过类名创建类的实例(反射)、java反射调用怎样获得原来的类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)