`
hubin4
  • 浏览: 92945 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

for java beginner-18 JAVABEAN规范-1

    博客分类:
  • JAVA
阅读更多
018-JAVABEAN规范-1

IntroSpector->中文意思是 检查,做内窥镜等,反正就那意思
翻译过来叫 内省 ,风牛马

什么是JAVABEAN?

有一定规则的JAVA类

只要是JAVABEAN,就可以把它当普通类来使用
但是普通类不一定可以当JAVABEAN来使用

很多事情用 普通类都可以做,为什么要用JAVABEAN呢???
当然当然当然是为了方便嘛,肯定有好处才用的
尤其是在J2EE里,N多地方用JAVABEAN,EL....
没有选择,跟大流,否则自己找麻烦!!!
JDK也提供了一些针对JAVABEAN的API供我们使用

JAVABEAN通常用来 传数据的 Value Object VO
[就是名字,年龄等,没有唱歌 跳舞的动作哦!! ]
有的公司叫TO

JAVABEAN的属性是根据 方法来的
方法去掉set get

盛夏的东西 首字母变小写
--------
getAge
setAge
=>age
-----------
★规则
如果第二个字母是小的,则把第一个字母变成小的
----------
gettime
settime
=>time

getTime
setTime
=>time [和上面一样]

-------------
现在来了一个

getCPU
setCPU
=>cPU???错★★
==>还是CPU
如果第二个字母是大的,则把第一个字母不变,还是大的

bool值用isLast() last 表示

get set | is set

------------------------------
package com.ncs.bean;

import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;

public class IntroSpectorText {
	
	//用特殊方式 set get 属性值
	public static void main(String[] args) throws Exception{
		// create a bean
		PointBean pointBean= new PointBean(3,3);
		
		// 知道有个属性叫x ★但是不用 setX getX
		String propertyName = "x";
		
		//PropertyDescriptor这个类的实例 可以得到x属性的相关信息
		//告诉它 属性名 和 类字节码
		PropertyDescriptor propertyDescriptor = 
			new PropertyDescriptor(propertyName,pointBean.getClass());
		
		//得到取值方法
		Method getMethod = propertyDescriptor.getReadMethod();
		//好名字retVal 取值方法不需要参数
		Object retVal = getMethod.invoke(pointBean, null);
		
		System.out.println(retVal); //成功取得值
		
		///////////////////////////////
		
		Method setMethod = propertyDescriptor.getWriteMethod();
		setMethod.invoke(pointBean, 17);
		
		//既然看看,就用土方法,其实应该先 设值,再取的,就先这样了
		System.out.println(pointBean.getX()); //成功设置17

/////////////////////////////////
		//再介绍一个老办法 读属性
		BeanInfo beanInfo = Introspector.getBeanInfo(pointBean.getClass());
		PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
		//是所有的属性 ,只好 loop 找到了break
		Object retVal2 = null;
		for(PropertyDescriptor pd : pds) {
			if(pd.getName().equals("x")) {
				Method getMethod2 = pd.getReadMethod();
				retVal2 = getMethod2.invoke(pointBean);//没有参数不写也可以的
				break;//找到了break
			}
		}
		System.out.println(retVal2);
	}

}

------------------------------
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics