1

Bean にプロパティを設定しようとしていますが、BeanUtils を機能させることができないようです...

Heresは、私が得ている問題の小さな例です。

public class Example
{
    public static void main(String[] args)
    {
        Example example = new Example();
        example.run();
    }
    public void run()
    {
        try
        {
            Bean bean = new Bean();
            BeanUtils.setProperty(bean, "name", "myName");
            System.out.println(bean.getName());
        } catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }
    private class Bean
    {
        private String name;

        public String getName()
        {
            return name;
        }

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

これを実行すると、「名前を設定できません」という InvocationTargetException が発生します。また、プロパティ文字列を「名前」にすると、エラーは発生しませんが、名前が設定されていません。

どこが間違っているのか、誰かが正しい方向に向けることができますか?

4

1 に答える 1

3

Bean クラスからプライベート属性を取り除きます。BeanUtils はリフレクションを使用しているため、メソッド「setName」にアクセスできません。プライベート内部クラスに通常どおりアクセスできる理由は、Java コンパイラがアクセスを許可する特別なトリックを行うためです。しかし、BeanUtils はこれらのトリックを使用していないため、使用できません。

于 2011-04-12T20:56:51.440 に答える