for-each の骨組み作っただけで Required Found のコンパイルエラー出た時
ループ変数、ループされる変数 のクラスに食い違いがないか確かめる
————————
自戒用に書き残し
import java.util.List;
import org.apache.commons.beanutils.DynaBean;
public class Test {
public void testMethod(List<DynaBean> resource) {
for(List<DynaBean> list : resource) { // << ココでコンパイルエラーになる
System.out.println(“record!”);
}
}
}
コンパイルすると下のようなエラーが出てくるはず
Incompatible Types. Required: java.util.List<org.apache.commons.beanutils.DynaBean > Found: org.apache.commons.beanutils.DynaBean
ループされる変数(resource)の期待クラス
java.util.List<DynaBean>
ループされる変数(resource)の検証クラス
orig.apache.common.beanutils.DynaBean
どっちが間違い?(実検証)
ループされる変数(resource)のクラスはコンパイル時点で間違い無し
→ ループ変数(list) は正しい?
→ ループされる変数(resource) のクラス(DynaBean) と不整合起こしている(→ java.util.List)
→ ループ変数(list) のクラス(java.util.List) が間違い
修正
import java.util.List;
import org.apache.commons.beanutils.DynaBean;
public class Test {
public void testMethod(List<DynaBean> resource) {
for(DynaBean list : resource) {
System.out.println(“record!”);
}
}
}