之前有在一个帖子中提出关于底下结构的实现
想实现如下结构,在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>
     <ReInfo>
        <Mark>Double|60.5</Mark> 
        <PassDate>Date|2004-12-12</PassDate>
     </ReInfo>
  <CourseInfo/> 
  <CourseInfo>
     <CourseId>Integer|1002</CourseId>
     <CourseName>String|C++</CourseName>
     <PassOrNot>Boolean|true</PassOrNot>
     <ReInfo>
        <Mark>Double|70.5</Mark> 
        <PassDate>Date|2005-12-12</PassDate>
     </ReInfo>
  <CourseInfo/> 
      ...
</PersonInfo>
-----------------------------------------
根据f_acme(沧海一声笑) 的回复
class ReInfo
{
private double ;
private Date passDate;
}
class CourseInfo
{
private int courseId;
private String courseName;
private boolean passOrNot;
private ReInfo reInfo;
}
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)
最好能提供例子代码,谢谢!

解决方案 »

  1.   

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

  2.   

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

  3.   

    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},
      

  4.   

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

  5.   

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

  6.   

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

  7.   

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

  8.   

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

  9.   

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

  10.   

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

  11.   

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

  12.   

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

  13.   

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

  14.   

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