5

これをテストするために、私はすぐに次のものを作りました:

public class Test {

public static void main(String[] args) {
try {
    Employee e = new Employee();
    e.setName("A");
    Employee y = new Employee();
//  y=e;
    BeanUtils.copyProperties(y, e);
    e.setName("B");
    System.out.println(y.getName());
} catch (Exception e) {
    e.printStackTrace();
}

}

}   
class Employee{
    String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

これは、印刷Aする代わりに印刷する必要がありますnull。ここで何がうまくいかなかったのですか?プロパティをあるオブジェクトから別のオブジェクトに実際にコピーするにはどうすればよいでしょうか (そして、同じ値を指すようにしないでください)、BeanUtils.copyProperties は最初にディープ コピーを作成しますか?

4

1 に答える 1

3

Employeeクラスを公開する必要があります。このコードは私のために働いた(そしてコンパイルする):

package com.sandbox;

import org.apache.commons.beanutils.BeanUtils;

public class Sandbox {

    public static void main(String[] args) {
        try {
            Employee e = new Employee();
            e.setName("A");
            Employee y = new Employee();
//  y=e;
            BeanUtils.copyProperties(y, e);
            e.setName("B");
            System.out.println(y.getName());
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static class Employee {
        String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

    }
}

publicからを削除するとEmployee、「null」と出力されました。

于 2013-06-19T20:25:26.907 に答える