今天运气不错

      好悬了。

      才把鼠标换到左手不久,还不是很熟练,虽说有一个星期了,还是有点生硬。本来准备删除一个类,没想到之间右键点到包上了,然后delete。发现后,那真叫一个紧张,顿时其他包的类文件顿时都带红叉叉了,心想,完了。删除的这个包是自己写的一个util包,里面都是一些需要重复用到的小工具类,几乎其他的类文件都会用到,要是重写,估计真没那个兴致和心情。

      放狗搜一下,竟然还发现不少和我一样的同学,都是手脚太利索,把整个包都删了。

      还好eclipse有一个恢复的功能,Restore from Local History…,能把project中删除的类、包等。

      试了一下,果然找到了刚才删掉的文件,恢复,立马OK了。真是幸运了,要不真是难搞。

      方法:1.在需恢复的项目上右键;2.选择Restore from Local History;3.在弹出的对话框中,选择需要恢复的文件就可以了。很简单了。

      需要注意的一点是,貌似这个功能只能用在project上,否则么有效果,所以,手痒的同学,还是要多多注意了,万一后悔莫及就惨了。

Java高级特性–反射

 Class 表示类的类,描述一类事物,规定类应该有什么属性,不应该有什么属性。但是不要求有什么属性。
 2.Class表示字节码的抽象,不知直接去构造(new Class())
 3.Person p1=new Person(),虚拟机编译时,首先需要加载Person.class文件到内存中
 4.Class c=Person.class,表示内存中实实在在的一堆字节码,p1代表那一堆字节码生成的对象。Class就表示字节码的抽象,c如上所述,表示的是字节码的引用
 5.Field:代表类的成员变量
 6.Constructor:代表类的构造方法
 7.Method:代表类的方法

package reflectclass;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class StudentTest {
	/**
	 * @param args
	 * @throws Exception 
	 * @throws InstantiationException 
	 */
 
	public Object create(Object obj) throws Exception {
		Class< ?> classType=obj.getClass();
		System.out.println("the class type:"+classType.getName());
		Object student=classType.newInstance();
		student=classType.getConstructor(null).newInstance(null);
//		student=classType.getConstructor(new Class[]{}).newInstance(new Object[]{});
		Field fields[]=classType.getDeclaredFields();
		for(Field f:fields) {
			Field field=f;
			String fieldName=field.getName();
			String firstName=fieldName.substring(0,1).toUpperCase();
			String getMethodName="get"+firstName+fieldName.substring(1);
			String setMethodName="set"+firstName+fieldName.substring(1);
			Method getMethod=classType.getMethod(getMethodName, new Class[]{});
			Method setMethod=classType.getMethod(setMethodName, new Class[]{field.getType()});
			Object value=getMethod.invoke(obj, new Object[]{});
			System.out.println("value:"+value);
			setMethod.invoke(student, new Object[]{value});
 
		}
 
		return student;
	}
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		Student s=new Student("student",23);
		s.setId(1);
		StudentTest st=new StudentTest();
		st.create(s);
	}
 
}

Read more…

Go back to top