刚接触这些,对于很多关于这些方面的知识都还只是处于比较潜的认识阶
一、JavaBean
javaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用于访问
私有的字段,而且方法名符合某种命名规则。如果要在两个模块之间传递多个信息,可以将这些信
息封装到一个javaBean中,这种javaBean的实例对象通常称之为值对象(Value Object,简称VO)。
下面是一个JavaBean的一个例子:
先创建一个SetProperty类,该类定义一个整型的x,y,并实现get和set方法。在构造函数
里面初始化这两个值;然后接着就创建一JavaBeans类,通过JavaBean得到一个类里面的一个
属性名,然后通过这个属性名来获取该属性的get方法得到某类的成员值。还可以改变某个类里
面的成员值。
public class JavaBeans {
public static void main(String[] args) throws Exception{
SetProperty set = new SetProperty(4,7);
String proName="x";//属性名
Object retValu = getProperty(set, proName);//获得x属性的值
System.out.println(retValu);
Object value=11;
setProperties(set, proName, value);
System.out.println(set.getX());
}
/**
* 改变某个类里面某个成员的值
*/
private static void setProperties(Object set, String proName,
Object value) throws IntrospectionException,
IllegalAccessException, InvocationTargetException {
PropertyDescriptor pd1 = new PropertyDescriptor(proName, set.getClass());
Method methSetX = pd1.getWriteMethod();
methSetX.invoke(set,value);
}
/**
* 传某个对象,得到某个类的成员的值
*/
private static Object getProperty(Object set, String proName)
throws IntrospectionException, IllegalAccessException,
InvocationTargetException {
/*
* 参数一是一个属性名,指定哪个类要当成javaBean
* 从javaBean类获得一个属性,pd1就代表一个属性
*/
PropertyDescriptor pd = new PropertyDescriptor(proName, set.getClass());
//得到属性的get方法
Method methGetX = pd.getReadMethod();
Object retValu = methGetX.invoke(set);
return retValu;
}
}
二、注解
注解就相当于一个标记,加了注解就等于打上了某种标记,没加,则等于没有某种标记,
在javac编译器,或者开发工具等可以用反射来了解一个类以及各种元素上有无何种标记,有什
么标记就去干相应的事情。标记可以加包、类、字段、方法,方法的参数以及局部变量上。注解
生命周期可以分为3个阶段:java源文件阶段、calss文件、内存中的字节码。javac编译class文
件的时候有可能去掉注解,类加载器把calss文件掉到内存里面来也有可能去掉注解。可以用 。
1、方法注解。
@Deprecated //表示过时的注解
public static void sayHello(){
System.out.println("注解");
}
2、字段注解
@SuppressWarnings("rawtypes")
List al = new ArrayList(); 3、定义一个注解类
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; @Retention(RetentionPolicy.SOURCE)
@Target({ElementType.METHOD,ElementType.TYPE})
public @interface AnnotationType {
}