类访问说明符问题

时间:2014-01-10 13:58:25

标签: java spring class

我有一个文件Test.java,内容如下:

class MyClass{
   private String myMember;

   public String getMyMember(){ return this.myMember;}
   public void setMyMember(final String myMember){this.myMember = myMember;}
}

public class Test implements Tasklet{
         public RepeatStatus execute(final StepContribution contribution, final ChunkContext chunkContext) throws Exception {

    // getting error here

   List<MyClass> myClassList= this.myJdbcTemplate.query(myQuery,
        ParameterizedBeanPropertyRowMapper.newInstance(MyClass.class));

   return RepeatStatus.FINISHED;
  }

}

Tasklet是一个弹簧批处理界面。

我收到如下错误:

org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.mypackage.MyClass]: Is the constructor accessible?; nested exception is java.lang.IllegalAccessException

错误的原因是什么?

如何解决?

感谢阅读!

1 个答案:

答案 0 :(得分:3)

MyClass应为public,并且可以选择公开默认构造函数:

public class MyClass() {
    public MyClass() {

    }
}

您希望ParameterizedBeanPropertyRowMapper返回List<MyClass>,而MyClass是私有的。

如果ParameterizedBeanPropertyRowMapper不公开,那么Spring MyClass将不会意识到MyClass的存在。