我使用的是spring MVC3 在服务层定义了一个接口Java代码  
public interface UserService<T>  public interface UserService<T>
然后用Java代码  
UserServiceImpl implements UserService<User>  UserServiceImpl implements UserService<User>和Java代码  
TeacherServiceImpl implements UserService<Teacher>  TeacherServiceImpl implements UserService<Teacher>两个类分别实现它,可是我在上层control层Java代码  
public Map<String, Object> queryList(DataGridModel dgm,Teacher teacher) throws Exception{          
  return userService.getPageList(dgm, teacher);   
    }  public Map<String, Object> queryList(DataGridModel dgm,Teacher teacher) throws Exception{    
  return userService.getPageList(dgm, teacher);
}居然提示Teacher cannot be cast to User 然后用debug调试原来是userService调用的是UserServiceImpl  可是我的userService 明明定义的是Java代码  
private UserService<Teacher> userService;   
       
    public UserService<Teacher> getUserService() {   
        return userService;   
    }   
  
    public void setUserService(UserService<Teacher> userService) {   
        this.userService = userService;   
    }  private UserService<Teacher> userService;

public UserService<Teacher> getUserService() {
return userService;
} public void setUserService(UserService<Teacher> userService) {
this.userService = userService;
}调用UserService<Teacher> 怎么成了调用UserService<User>了 ,请问大家是否遇到过这样的类似的问题,如果遇到过是如何解决的 

解决方案 »

  1.   

    你定义的接口是泛型的,所以你的实现类UserServiceImpl也需要是泛型的,UserServiceImpl<User>..
      

  2.   

    来学习,你control层怎么注入service的?
      

  3.   

    请看泛型的使用:/**
     * 访问数据库的基类dao
     * @version 2.0
     * */
    public interface BaseDao<T extends Serializable>/**
     * 访问数据库的基类dao实现类
     * @version 2.0
     * */
    public abstract class BaseDaoImpl<T extends Serializable> extends PageDao implements BaseDao<T>/**
     * 用户的dao接口
     * @version 1.0
     * */
    public interface UserDao extends BaseDao<User>/**
     * 用户的dao接口实现类
     * @version 1.0
     * */
    @ServiceBean
    public class UserDaoImpl extends BaseDaoImpl<User> implements UserDao
      

  4.   

     兄弟,我试了你的方法UserServiceImpl<User> 不过不行的因为我的Teacher不是User的子类
      

  5.   

    contorl层调用服务层,没有注入