javabean 如何清除已经填充了的属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javabean 如何清除已经填充了的属性相关的知识,希望对你有一定的参考价值。

如题,如何清除已经填充了值的属性,也就是说把之间的set动作全部清除,重新变成一个未使用的javaBean

参考技术A 重新NEW一个就行了。JAVA垃圾回收机制会自动清除追问

new 一个又多占用了内存资源,因为每一个请求都要new一个javabean,1W个请求就new 1W次,这样很消耗内存的说

参考技术B 直接gc吧! 参考技术C 重新new呗~~~~~或者自己写一个clear的方法追问

new 一个又多占用了内存资源,因为每一个请求都要new一个javabean,1W个请求就new 1W次,这样很消耗内存的说

有关内省的一些事

首先什么是内省呢,内省就是用来获得JavaBean的属性已经属性的getset方法

那什么是JavaBean文件呢

JavaBean文件就是,有特定格式的一个java类。有如下的条件我们就能够称为一个JavaBean

1.有无参的构造方法

2.属性是私有的

3.对于私有的属性提供公共的get,set方法。

 

对于这样的文件我们就能够成为是一个JavaBean文件了。

那我们怎么获得它的属性和对应的getset方法了?

这个我们需要引入一个 Introspector。这个类中有一个静态的方法

 

static BeanInfo     getBeanInfo(Class<?> beanClass)

(在 Java Bean 上进行内省,了解其所有属性、公开的方法和事件。)

 

这个方法返回一个BeanInfo类型的对象,获得了Bean文件的信息。我们在通过BeanInfo这个对象,调用它的方法 getPropertyDescriptors(),得到一个属性描述器。这个返回的是一个数组。数组中包含了所有的属性。

 

我们这里需要明确,一个Bean文件的属性,是由get,set确定的,并不是写了几个属性。

 

PropertyDescriptor[]  getPropertyDescriptors()

 

我们接下来可以对得到的属性数组进行遍历,可以得到每一个属性。

然后我们通过,

属性.getReadMethod()就能获得get方法

属性.getWriteMethod()就能获得set方法

 

 

public void demo1() throws Exception{

// 获得了Bean的信息

  BeanInfo beanInfo = Introspector.getBeanInfo(User.class);

  // 获得Bean的属性描述

  PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();

  for(PropertyDescriptor pd:pds){

    System.out.println(pd.getName());

    pd.getReadMethod(); // 获得get方法

    pd.getWriteMethod();// 获得set方法.

  }

}

 

以上是关于javabean 如何清除已经填充了的属性的主要内容,如果未能解决你的问题,请参考以下文章

什么是Javabean

在myeclipse中如何创建javabean

有关内省的一些事

jsp+Servlet+javabean 出现乱码问题

Spring IOC 容器源码分析 - 填充属性到 bean 原始对象

怎么把一个javabean里面的属性封装成map集