CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

关于JavaBean概念和用法【菜鸟上路】

楼主4031(请教)2006-03-09 09:43:39 在 Java / J2SE / 基础类 提问

之前有在一个帖子中提出关于底下结构的实现  
  想实现如下结构,在Java中如何定义类:  
  <PersonInfo>  
      <CountryName>String|中国</CountryName>  
      <ProvinceName>String|江苏省</ProvinceName>  
      <CityName>String|南京市</CityName>  
      <Age>Integer|28</Age>  
      <CourseInfo>  
            <CourseId>Integer|1001</CourseId>  
            <CourseName>String|Java</CourseName>  
            <PassOrNot>Boolean|true</PassOrNot>  
            <RemarkInfo>  
                  <Mark>Double|60.5</Mark>    
                  <PassDate>Date|2004-12-12</PassDate>  
            </RemarkInfo>  
      <CourseInfo/>    
      <CourseInfo>  
            <CourseId>Integer|1002</CourseId>  
            <CourseName>String|C++</CourseName>  
            <PassOrNot>Boolean|true</PassOrNot>  
            <RemarkInfo>  
                  <Mark>Double|70.5</Mark>    
                  <PassDate>Date|2005-12-12</PassDate>  
            </RemarkInfo>  
      <CourseInfo/>    
              ...  
  </PersonInfo>  
  -----------------------------------------  
  根据f_acme(沧海一声笑)   的回复  
  class   RemarkInfo  
  {  
  private   double   mark;  
  private   Date   passDate;  
  }  
  class   CourseInfo  
  {  
  private   int   courseId;  
  private   String   courseName;  
  private   boolean   passOrNot;  
  private   RemarkInfo   remarkInfo;  
  }  
  class   Person  
  {  
  private   String   country;  
  private   String   province;  
  private   String   city;  
  private   int   age;  
  pravate   CourseInfo[]   courseInfo;  
  }  
  1、请问这种是JavaBean吗??  
  2、我现在想实现的是:  
    *   写个方法,如HandleExm(JavaBean){},传人参数是上面结构的JavaBean,完成某个业务逻辑操作  
    *   定义的JavaBean可以自动生成Setters()和Getters()方法(是不是直接源码自动生成即可?)  
    *   通过传人的参数如果获取JavaBean的成员的名称、类型?如如何获取PersonInfo的CountryName和它的类型(String)  
  最好能提供例子代码,谢谢!  
  问题点数:100、回复次数:22Top

1 楼4031(请教)回复于 2006-03-09 09:47:34 得分 0

关于取PersonInfo的数据可以根据PersonInfo.getters()方法获取,如果获取成员   CountryName   这个名字(CountryName)和成员类型(String),如何操作,因为业务逻辑里需要从传人的参数(JavaBean)中提取三样信息:成员名称列表、成员所对应的类型列表、成员所对应的数值,谢谢!Top

2 楼pdvv(花猫)回复于 2006-03-09 11:23:14 得分 30

JavaBean没有固定样式要求,就是一段可以执行的java程序,你上面给出的写法更多是主要是作为一种结构存储你的数据,方便传递,但是你还需要增加设置、获取的方法,即get、set。  
   
  比如:  
  class   RemarkInfo  
  {  
  private   double   mark;  
  private   Date   passDate;  
   
        public   double   getMark(){  
              return   this.mark;  
        }  
         
        public   void   setMark(double   d){  
              this.mark   =   d;  
        }  
  }  
   
  就是说,对于RemarkInfo的每一个属性要提供访问方法,当然如果嫌麻烦很多IDE可以自动生成。Top

3 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-09 11:47:54 得分 40

JavaBean   说白一点就是java类,  
  不过一般的java类要成为JavaBean符合以下条件  
  1.公共无参数的构造函数  
  2.每一个属性都要有setter,getter方法  
  3.实现Serializable接口  
   
  public   class   PersonInfo   implements   java.io.Serializable   {  
  private   String   CountryName;  
   
  private   String   ProvinceName;  
   
  private   String   CityName;  
   
  private   int   Age;  
   
  public   PersonInfo()   {  
  super();  
  //   TODO   Auto-generated   constructor   stub  
  }  
   
  public   int   getAge()   {  
  return   Age;  
  }  
   
  public   void   setAge(int   age)   {  
  Age   =   age;  
  }  
   
  public   String   getCityName()   {  
  return   CityName;  
  }  
   
  public   void   setCityName(String   cityName)   {  
  CityName   =   cityName;  
  }  
   
  public   String   getCountryName()   {  
  return   CountryName;  
  }  
   
  public   void   setCountryName(String   countryName)   {  
  CountryName   =   countryName;  
  }  
   
  public   String   getProvinceName()   {  
  return   ProvinceName;  
  }  
   
  public   void   setProvinceName(String   provinceName)   {  
  ProvinceName   =   provinceName;  
  }  
   
  }  
   
   
   
  /////////////////以上就是一个JavaBean   符合三个条件  
  操作的时候  
   
  HandleExm(PersonInfo     person){  
      int   age   =     person.getAge()    
      通过get   set   方法操作javabean  
   
  },Top

4 楼treeroot(旗鲁特)回复于 2006-03-09 12:20:47 得分 0

up  
  Top

5 楼DeluxWorld(曾经的你)回复于 2006-03-09 12:57:41 得分 5

可以把bean理解成一些相关数据组成的容器,你构造了这个容器然后通过它去完成  
  一些操作~Top

6 楼4031(请教)回复于 2006-03-09 13:11:41 得分 0

谢谢各位大侠!  
  请问interpb(曾曾胡)   ,  
  implements   java.io.Serializable   这是是什么意思?手工加的还是创建是自动生成的?  
  关于数据存储这一块已经明白了,现在就是关于以下的名称和类型如何通过JavaBean获取,谢谢!  
   
    *   通过传人的参数如果获取JavaBean的成员的名称、类型?如如何获取PersonInfo的CountryName和它的类型(String)  
  Top

7 楼4031(请教)回复于 2006-03-09 13:15:14 得分 0

还有一个就是创建Class时abstract,final选项什么时候使用?功能是什么?谢谢!Top

8 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-09 13:21:55 得分 10

这是一个标志接口,不含任何方法  
  是要你自己手工加上  
  只是表示实现这个接口的类的对象可以被序列化  
  关于序列化的概念自己去看看资料  
   
  /////////////////////////////////////  
    *   通过传人的参数如果获取JavaBean的成员的名称、类型?如如何获取PersonInfo的CountryName和它的类型(String)  
   
  难道你不知道传入参数具体是什么JavaBean吗  
  这样   person.getCountryName()  
   
  就可以获得了    
   
  把意思说清楚  
   
   
  Top

9 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-09 13:22:40 得分 0

abstract   声明一个抽象类  
  final   声明一个不能被继承的类Top

10 楼4031(请教)回复于 2006-03-09 14:54:09 得分 0

结构知道,我是想做成一个通用的,目前传人的是固定结构的JavaBean,以后可以不管是什么结构,一个一个成员取出来,然后根据成员的类型来做下一步的处理,比如  
  取传人的PersonInfo信息时,直接通过.getCountry()获取国家的信息,如果想取成员的名称country和类string如何处理,最终目的是为了以后不过传人的JavaBean是什么结构,都可以把JavaBean的成员名称、类型、值给取出来~谢谢!  
  Top

11 楼4031(请教)回复于 2006-03-09 16:45:58 得分 0

再顶一下,谢谢!Top

12 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-09 17:55:43 得分 15

那就用反射吧  
   
  Class.getMethods()  
   
  然后invoke  
  自己看看apiTop

13 楼nirendao(雷老虎)回复于 2006-03-09 17:55:53 得分 0

upTop

14 楼aywrenyue(基本功修炼中……)回复于 2006-03-09 18:36:14 得分 0

UPTop

15 楼kevin1236()回复于 2006-03-09 19:15:32 得分 0

这是OO的问题,你可以创建一个类,类里有你所要的属性和方法,在其他地方直接new一个对象调用就ok拉Top

16 楼universe01(未知软体)回复于 2006-03-09 20:00:07 得分 0

反射也许会更合适.Top

17 楼fruitskep(水果篮子)回复于 2006-03-09 22:10:48 得分 0

看半天没看懂4031(请教)到底什么意思??你是要写一个struts吗?还是servlet?Top

18 楼bbbbcccc()回复于 2006-03-10 16:48:58 得分 0

http://valenhua.go3.icpcn.com/Top

19 楼Nowish(看我能忍耐多久)回复于 2006-03-10 17:14:05 得分 0

关注  
  Top

20 楼tony817991(tao)回复于 2006-03-10 17:43:43 得分 0

uuuuuuu...   UPTop

21 楼21bird(世纪笨鸟:csdn的blog啊啥时能不出错?!)回复于 2006-03-11 09:15:44 得分 0

我看楼主似乎要用bean写个com对象,哈哈~~~Top

22 楼wizardblue()回复于 2006-03-11 09:31:20 得分 0

以下引用楼主的原话  
  -------------------------------------------------------------------------  
  "结构知道,我是想做成一个通用的,目前传人的是固定结构的JavaBean,以后可以不管是什么结构,一个一个成员取出来,然后根据成员的类型来做下一步的处理,比如  
  取传人的PersonInfo信息时,直接通过.getCountry()获取国家的信息,如果想取成员的名称country和类string如何处理,最终目的是为了以后不过传人的JavaBean是什么结构,都可以把JavaBean的成员名称、类型、值给取出来~谢谢!"  
  --------------------------------------------------------------------------  
  这种我想应该用反射来做了吧?Top

相关问题

  • 菜鸟上路!!!!!!!!!!
  • 菜鸟问题,ShowWindow用法
  • ::的用法(我是菜鸟)
  • 菜鸟问:Filter的用法!
  • 新手上路,请问char **类型的确切含义和用法
  • 菜鸟上路。有关rmi????????
  • java.lang.NullPointerException报错【菜鸟上路】
  • 菜鸟问:求QueryTables的用法
  • 莱鸟发问:关于MessageBox的用法
  • 菜鸟请教writeprocessmemory的用法

关键词

  • javabean
  • 结构
  • 属性
  • java
  • 接口
  • personinfo
  • countryname
  • 传人
  • 成员
  • remarkinfo

得分解答快速导航

  • 帖主:4031
  • pdvv
  • interpb
  • DeluxWorld
  • interpb
  • interpb

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo