JAVA 反射
您查询的关键词是:newinstance object initargs 。如果打开速度慢,可以尝试快速版;如果想保存快照,可以添加到搜藏。
(百度和网页http://bbs.iaiai.com/forum/read.php?tid=2690的作者无关,不对其内容负责。百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面。)
主题 : java的反射机制 使用道具┊ 复制链接 ┊浏览器收藏┊打印
java的反射机制
java的反射机制一
在java里面有一种反射机制reflect,这是其它语言所没有的,可以动态创建对象和方法,还有成员变量等:
一.对象动态创建的方法如下:
我们需要使用的有Class类和Constructor类,还有Method和Field类,具体的使用方法如下:
1.使用Class类的Class.forName(String className)方法得到一个Class对象,
eg: Class aClass=Class.forName(Foo.class.getName());
或者 Class aClass=Class.forName("Foo");
2.得到一个Class对象之后,我们还需要把它转换成我们需要的类型对象,
eg: Foo foo=(Foo)aClass.newInstance();
注意此地方的newInstance()方法只能调用Foo类的公有无参构造函数,如果没有构造函数
则使用父类的公有无参构造函数,如果被重写了,则会创建对象失败。
3.得到了对象之后我们就可以任意摆布她了。
4.如果我们的构造函数里面需要传入参数,怎么办?
这时候我们就需要使用Constructor类了,创建方法如下:
eg: Constructor ctor = aClass.getDeclaredConstructor(Class[] parameterTypes);
如果我们有这样一个类需要动态创建对象:
public class BB {
private int baby = 9;
public BB(int b) {
baby = b;
}
/**
* @return Returns the baby.
*/
public int getBaby() {
return baby;
}
/**
* @param baby
* The baby to set.
*/
public void setBaby(int baby) {
this.baby = baby;
}
}
那么我们如何来做呢?
Integer[] os = new Integer[1];
os[0] = new Integer(6);
Class cls = Class.forName(BB.class.getName());
Constructor ctor = cls.getDeclaredConstructor((new Class[] { int.class }));
BB bbb = (BB) ctor.newInstance(os);
System.out.println(bbb.getBaby());
二.方法的动态创建:
假设上面的BB类需要动态创建getBaby()方法,我们该怎么做?这时候我们需要使用到
Method类了:
1.定义一个方法m:
eg: Class cls = Cla
相关文档:
通过Web Service混合.NET和Java技术往往很容易,但Web Service并非是.NET和Java互操作的万灵丹。Web Service在集成独立的跨网络通信的组件时非常有用,在简单的调用/返回情景中,涉及的数据类型数量非常有限,且Web Service是基于标准的,混合.NET和Java技术通常显得很简单,因此有人认为Web Serv ......
.net网站theserverside.com上,有一篇讲.net和java互操作的文章,收集了net和java互操作性的文章精选
[url]http://www.theserverside.net/tt/articles/showarticle.tss?id=InteropGuide[/url]
In the heterogeneous world of enterprise computing, interoperability is no longer a luxury but a necessity. The multip ......
目前大多数使用gson的还要求在java类中使用java annotation,不完全支持POJO。
Gson这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。
代码例子
/*
* To change this template, choose Tools | Templates
* and open the ......
Blog from http://forum.xda-developers.com/showthread.php?t=552846
I've just pushed new Hero Java app into my rogers build and it works fine.
What you basically need is:
Jbed.apk (install with adb install)
libjbedvm.so (adb push /system/lib) - remember to remount as RW.
I strongly suggest to ......