加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

JavaBeans比较

发布时间:2020-12-15 00:04:46 所属栏目:Java 来源:网络整理
导读:有没有人知道一个免费的开源库(实用程序类),它允许您比较一个 Java bean的两个实例,并返回一个属性的列表/数组,这两个实例中的值是不同的?请张贴一个小样本. 干杯 托马斯 解决方法 Apache Commons的 BeanComparator是你正在寻找的. 更新.将JavaBeans与一个
有没有人知道一个免费的开源库(实用程序类),它允许您比较一个 Java bean的两个实例,并返回一个属性的列表/数组,这两个实例中的值是不同的?请张贴一个小样本.

干杯
托马斯

解决方法

Apache Commons的 BeanComparator是你正在寻找的.

更新.将JavaBeans与一个属性进行比较的简单示例(比较只会产生一个属性,您应该创建与要匹配的属性一样多的BeanComparator).

import org.apache.commons.beanutils.BeanComparator;

public class TestBeanComparator
{
    public TestBeanComparator()
    {
    }

    public class TestBean
    {
        int value;

        public TestBean()
        {
        }

        public int getValue()
        {
            return value;
        }

        public void setValue(int value)
        {
            this.value = value;
        }
    }

    public static void main(String[] args)
    {
        TestBeanComparator tbc = new TestBeanComparator();

        tbc.go();
    }

    public void go()
    {
        TestBean tbs [] = new TestBean[10];

        for (int i = 0; i < tbs.length; i++)
        {
            tbs[i] = new TestBeanComparator.TestBean();
            tbs[i].setValue((int) (Math.random() * 10));

            System.out.println("TestBean["+i+"] = " + tbs[i].getValue());
        }

        BeanComparator bc = new BeanComparator("value");

        System.out.println("");
        System.out.println("Value to match: " + tbs[0].getValue());
        for (int i = 1; i < tbs.length; i++)
        {
            if(bc.compare(tbs[i],tbs[0]) == 0)
            {
               System.out.println("Match found in bean "+ i); 
            }
        }
    }
}

经过一些测试,一个结果是成功的.这是输出:

TestBean[0] = 0
TestBean[1] = 4
TestBean[2] = 0
TestBean[3] = 2
TestBean[4] = 7
TestBean[5] = 3
TestBean[6] = 0
TestBean[7] = 3
TestBean[8] = 7
TestBean[9] = 3

Value to match: 0
Match found in bean 2
Match found in bean 6

显然,增加TestBean数组大小将增加获取匹配的机会.

您需要将以下jar导入到项目中:commons-logging-version.jar,commons-beanutils-version.jar,commons-beanutils-core-version.jar,commons-beanutils-bean-collections-version.jar,commons -collections-version.jar.

这些文件包含在commons-logging,commons-beanutils和commons-collections API中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读