传智博客课堂学习笔记3.26

来源:互联网 发布:电脑画图纸软件 编辑:程序博客网 时间:2024/04/29 04:34

 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 ??

第一天上课。感觉黎老师的讲课深入浅出,同时很有耐心。
一天下来收获不小,参加培训的好处就是在遇到问题时能够及时询问。

 

 

 

原创粉丝点击