`

关于创建JavaBean的小细节

    博客分类:
  • Java
 
阅读更多
例如创建一个User class
普通模式:
    setter返回void,变量和getter,setter符合Javabean规范。
public class User {
	private int id;
	private String user;
	public User(){}
	
	public User(int id , String user){
		this.id = id;
		this.user = user;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public  String getUser() {
		return user;
	}

	public void setUser(String user){
		this.user = user;
	}
	
}


增强模式:
    setter返回this(当前bean实例),但setter的模式非JavaBean的规范;
    setter这样写的好处是可以连续通过点记法导航设置值;
    如user.setId("020-001").setUser("toby");

public class User{
        private int id;
	private String user;
	public User(){}
	
	public User(int id , String user){
		this.id = id;
		this.user = user;
	}

	public int getId() {
		return id;
	}

	public User setId(int id) {
		this.id = id;
                return this;    // has return
	}

	public  String getUser() {
		return user;
	}

	public User setUser(String user){
		this.user = user;
                return this;  // has return
	}
}

链式调用似乎在一般使用时作用不大,但对于属性数量太多的时候可以节省更多代码。

补充:
public void listPropertyNames(Class c) throws IntrospectionException{
    PropertyDescriptor [] pd;
    pd = Introspector.getBeanInfo(c).getPropertyDescriptors();
    for(int i=0;i<pd.length;i++){
        System.out.println(pd[i].getName()
                                     + "(" + pd[i].getProperty().getName() + ")");
    }
}
//listPropertyNames(User.class)

//output ->class(java.lang.Class)
//         id(int)
//         user(java.lang.String)


上面使用Introspector类来获得某bean的PropertyDescriptor对象列表,遍历显示出该bean的特性名称和类型。这种方法在定位bug是非常有用。(来自《ibatis in action》的介绍)
分享到:
评论

相关推荐

    等差等比求和

    Javabean模型Example6_1_Bean.java中的getXxx和setXxx方法不涉及对数据的具体处理细节,以便增强模型的通用性。比如,setSum(double s)仅仅将参数s的值赋给属性sum,因此,模型即可以存储等差数列的和也可以存储等比...

    Struts in Action中文版(PDF)

    为了能在一本书里面包含 Struts,我们试图在本书中包括HTML 标记语言, JSP页面语法,JavaBean 开发的习惯,或者类似技术的细节。嘉定读者已经熟知这些技术,以便能跟得上我们表述的例子。 并且假定读者熟知URL,...

    iBATIS实战

    4.1.1 创建JavaBean 64 4.1.2 SqlMap API 66 4.1.3 已映射语句的类型 67 4.2 使用select已映射语句 70 4.2.1 使用内联参数(用#做占位符) 70 4.2.2 使用内联参数(用$做占位符) 71 4.2.3 SQL注入简介 72 4.2.4 自动...

    影音娱乐去秀吧视频秀 jsp学习版-goshow8com.rar

    此外,还有关于JSP与Servlet、JavaBean、JDBC等技术的整合应用,让你能够全面掌握JSP的开发流程和技术细节。通过学习这个资料包,你将能够熟练运用JSP技术开发出功能完善、界面美观的动态网站。无论是学校的课程作业...

    深入体验Java Web开发内幕

    HttpServletResponse的应用  5.1 准备实验环境  5.2 HttpServletResponse简介  5.3 产生响应状态行  5.4 构建响应消息头  5.5 响应消息头的实用案例  5.6 创建响应正文  5.7 请求重定向...

    JAVA面向对象详细资料

    11 javaBean编码规范 14 12 练习: 15 13 什么构造方法 16 14 构造方法的作用? 17 15 this关键字 17 16 方法调用时的引用传递还是值传递 19 17 面向对象语言的三大特性:封装,继承,多态 20 18 什么是封装?封装在...

    java 面试题 总结

    抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性...

    超级有影响力霸气的Java面试题大全文档

    抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确...

    java三大框架

    比如, Enterprise Java-Beans (EJB) container或者 Servlet engine 而这些框架一般在中小工程中我们都不会使用,会让我们把大量的时间浪费在开发框架上。 而现在比较流行开源框架,主要是struts,hibernate,spring等...

    Java EE常用框架.xmind

    这些数据库表由Actitviti创建,由Activiti维护。 部署完的工作流是需要手动去执行该工作流的。 根据由谁处理当前任务,我们就可以查询出具体的任务信息。 根据任务的id,我们就可以执行任务了。 细节 ...

    FreeMarker模板引擎-其他

    你可以使用抽象(接口)方式表示对象(JavaBean、XML文档、SQL查询结果集等等),告诉模板开发者使用方法,使其不受技术细节的打扰 4、为Web准备 在模板语言中内建处理典型Web相关任务(如HTML转义)的结构 能够集成...

    JAVA面试题最全集

    除了使用new关键字创建对象意外,试列举另外三种以上创建实例的方式? 37.classloader中,JDK的API、Classpath中的同web-inf中的class加载方式有什么区别? 38.列举三种以上垃圾回收算法,并比较其优缺点? 39....

    Struts in Action中文版

    1.1. 关于本书...............................................................................................................19 1.1.1. 谁创建了 Struts?....................................................

    struts in Action

    1.1. 关于本书...............................................................................................................19 1.1.1. 谁创建了Struts?......................................................

Global site tag (gtag.js) - Google Analytics