[Seasar-user:16264] [S2BeanUtils]CharSequence型指定時にexcludesメソッドが利かない

hirokazu tayama [E-MAIL ADDRESS DELETED]
2008年 11月 10日 (月) 14:12:21 JST


いつもお世話になっております。田山と申します。

Seasar2 2.4.31よりBeansのexcludesの引数に
CharSequence型を指定できるようになったと思います。

https://www.seasar.org/issues/browse/CONTAINER-294

こちらですが、String以外のCharSequence型指定時、
excludesが正常に機能していないように思います。

public class Hoge {
	public String prop;
}

public class Fuga {
	public String prop;
}

public class Prop implements CharSequence{
        :
	@Override
	public String toString(){
		return "prop";
	}
        :
}

Hoge hoge = new Hoge();
hoge.prop = "hogeProp";
Fuga fuga = new Fuga();
fuga.prop = "fugaProp";

Beans.copy(hoge, fuga).excludes(new Prop()).execute();
System.out.println(fuga.prop); //hogeProp

コードを追ってみましたが、AbstractCopy#isTargetPropertyにて
引数のname(String型)とexcludePropertyNames(CharSequence型)
をequalsで比較しているのが原因かと思いました。
(恐らく、includesも同様?)

以上、ご確認よろしくお願いいたします。


Seasar-user メーリングリストの案内