您的位置:首页 > 其它

传智博客课堂学习笔记3.26

2009-04-16 21:34 405 查看
192.168.0.200
传智博客课堂学习笔记3.26
JAVA基础
1、注解
2、反射(读写field和属性,调用method,获取泛型和注解,构建对象)
Employee emp = new Employee();//正向调用

Class cs = Class.forName("cn.itcast.Servlet");
Servlet s =(Servlet)cs.newInstance();//调用默认构造器
s.delete();//反向调用

通过反射技术获取构造器
import java.lang.reflect.Constructor;

Class cs = Class.forName("cn.itcast.Servlet");
Constructor con = cs.getConstructor(String.class,Integer.class);//只能获取public的构造函数(getDeclaredConstructor:可以得到private,protected,public,friendly的构造函数)
//.class用来取得类型
constructor.setAccessible(true);//允许访问private的构造方法
Servlet b=(Servlet)con.newInstance(参数);
b.delete();//反向调用

public class PersonServiceBean {
public Integer id;
}

public class Tu {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PersonServiceBean personServiceBean1 = new PersonServiceBean();
PersonServiceBean personServiceBean2 = new PersonServiceBean();
personServiceBean1.id=23;
personServiceBean2.id=22;

try {
Class clazz = Class.forName("cn.itcast.PersonServiceBean");
//Class clazz = personServiceBean1.getClass();
Field field = clazz.getField("id");

System.out.println(field.get(personServiceBean1));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

3、泛型
4、可变参数
Integer... ids

5、增强for循环 迭代数组、集合
String[] ids =new String[]{"first","second"};
for(Integer s : ids)

6、代理(设计模式),classLoader

7、静态引入
import static java.lang.System.out;
public static void main(String[] args){
out.println("xx");
}

System.out.println = out.println;

Eclipse,ctrl+单击out,即可查看out具体内容

8、枚举

装箱、拆箱(JDK1.5以上)
?具体作用?
基本类型到对象类型 装箱
对象类型到基本类型,拆箱
Integer [] s2 = new Integer[]{1,2};
int a = new Integer(5);

讲解:
Integer b = new Integer(9);
int i = b;//拆箱

Integer b;
int i=5;
b=i;//装箱

数组定义:
Integer[] array = new Integer[]{1,2,3};

Integer[] array = new Integer[2];
array[0]=4;
array[1]=5;

class首字母大写

9、内省(Introspector)
内省的方式得到JAVABEAN的属性,并通过反射的方法修改??
import java.beans.Introspector;
import java.beans.BeanInfo;

属性,大小写问题

字段和属性

public static void main(String[] args) {
PersonServiceBean ss1 = new PersonServiceBean();
PersonServiceBean ss2 = new PersonServiceBean();
try {
Class clazz = Class.forName("cn.itcast.PersonServiceBean");
BeanInfo beanInfo = Introspector.getBeanInfo(clazz);//得到javabean的内部结构信息
PropertyDescriptor[] ps = beanInfo.getPropertyDescriptors();//得到所有的属性描述
for(PropertyDescriptor p : ps){
if("ID".equals(p.getName())){
System.out.println(p.getPropertyType());//获取属性的类型
Method setter = p.getWriteMethod();
if(setter!=null) setter.invoke(ss1, 4);
Method getter = p.getReadMethod();
if(getter!=null) {
Object value = getter.invoke(ss1);
System.out.println(value);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

Method ??

第一天上课。感觉黎老师的讲课深入浅出,同时很有耐心。
一天下来收获不小,参加培训的好处就是在遇到问题时能够及时询问。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: