Java内省:JavaBean
一个特殊的java类,这个类的里边的方法的名称符合某种约定的规则
它其实就是一种规范,可以当做普通类来进行操作。它主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法符合某种命名规则
如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为值对象.这些信息在类中用私有字段来存储.如果读取或设置这些字段的值,则需要通过一些相应的方法来访问.JavaBean的属性是根据其中的getter和setter方法来确定的,而不是根据其中的成员变量.
总之,一个类被当做JavaBean使用时,JavaBean的实行根据方法名来推断出来的,它根本看不到java类内部的成员变量
把一个类当做javaBean用的好处:
1.在javaEE开发中,经常要使用JavaBean.很多环境就要求按JavaBean方式进行操作,别人都这么用和要求这么做,那你就没什么挑选的余地
2.JDK中提供了对JavaBean进行操作的一些API,这套API就成为内省.用内省这套API操作JavaBean比普通类的方式更方便
jjava注解和取消注解:
java注解:Annotation
@Override标记此方法是覆盖父类的方法
@supperssWarnings{deprecation}取消注解
@Deprecated标记此方法已过时
注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,冰法工具和其他程序可以用反射来了解你的类及各种元素上有何种标记,然后去做相应的事,标记可以加在包。类。字段。方法的参数以及局部变量上
import java.util.*;
public class TestAnnotation02 {
//
@SuppressWarnings({"unchecked","deprecation"}) //取消两个提示
public static void main(String[] args) {
Test t = new Test();
t.fun(); //会提示此方法已过时
List list = new ArrayList();//会提示要用泛型
list.add(1);
}
}
class Test{
@Deprecated
}
泛型的应用:
泛型能更早的发现错误,如类型转换错误,通常在运行期才会发现,如果使用泛型,那么在编译期将会发现,通常错误发现的越早,越容易调试,越容易减少成本
ArrayList类定义和ArrayList类引用中:
整个称为ArrayList泛型类型
ArrayList中的E称为类型变量或类型参数
整个ArrayList称为参数化的类型
ArrayList中的Integer称为类型参数的实例或实例类型参数
ArrayList称为原始类型
参数化类型与原始类型的兼容性:
参数化类型可以引用一个原始类型的对象,编译报告警告
原始类型可以引用一个参数化类型的对象,编译报告警告
Collection c = new Vector();原来的方法接受一个集合参数,新的类型也要能传进去
参数化类型不考虑类型参数的继承关系:
Vector v = new Vector错误
Vector错误
在创建数组实例时,数组的元素不能使用参数化的类型
Vector vectorList[] = new Vector[10];
HashMap maps = new HashMap();
maps.put("zxx", 28);
maps.put("lhm", 35);
maps.put("flx", 33);
Set> entrySet = maps.entrySet();
for(Map.Entry entry : entrySet){
System.out.println(entry.getKey() + ":" + entry.getValue());
}
例1:
import java.util.*;
public class TestGeneric01 {
//一个PageMode1对象数据类型为String的可以用此方法
public static void test(PageMode1 p){
for (String s : p.list){
System.out.println(s);
}
}
private static void test2(PageMode1