您的位置:首页 > 编程语言 > Java开发

java反射:建立框架

2011-08-20 21:00 197 查看
框架的意思就是预先给定一个程序,他可以调用你所给定的程序或任何东西。这样你就可以利用这个框架快速的做一些你想做的事。

反射也能建立框架,比如你可以新建一个配置文件,还有一个预先写好的程序,这样只要在配置文件中修改即可。

我们这里的程序给定了一个config.properties配置文件,这样用户只要在这个配置文件中修改集合的特定类型,即可使用。

import java.io.FileInputStream;
import java.lang.reflect.Constructor;
import java.util.Collection;
import java.util.Iterator;
import java.util.Properties;

public class ReflectTest {

public static void main(String[] args) {

try {
FileInputStream fin = new FileInputStream("config.properties");
Properties p = new Properties();
p.load(fin);
String cstr = p.getProperty("collection");
Constructor con = Class.forName(cstr).getConstructor(null);
Collection col = (Collection) con.newInstance(null);
fin.close();
ReflectPoint p1 = new ReflectPoint(1, 1);
ReflectPoint p2 = new ReflectPoint(2, 2);
ReflectPoint p3 = new ReflectPoint(1, 1);
ReflectPoint p4 = new ReflectPoint(4, 4);
col.add(p1);
col.add(p2);
col.add(p3);
col.add(p4);
Iterator i = col.iterator();
while(i.hasNext())
{
System.out.println(i.next());
}
} catch (Exception e) {
e.printStackTrace();
}

}

}

class ReflectPoint {
private int x;

private int y;

public ReflectPoint(int x, int y) {
super();
this.x = x;
this.y = y;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + x;
result = prime * result + y;
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ReflectPoint other = (ReflectPoint) obj;
if (x != other.x)
return false;
if (y != other.y)
return false;
return true;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: