接口问题
接口:
package com.mq.jcyk.clas.service;
import com.mq.jcyk.clas.action.ClasDto;
public interface ClasService
{
public void createStudent(ClasDto dto);
}
实现:
package com.mq.jcyk.clas.service.impl;
import java.util.Map;
import com.mq.jcyk.clas.dao.ClasDao;
import com.mq.jcyk.clas.service.ClasService;
import com.mq.jcyk.pojo.Student;
import com.mq.jcyk.util.BruceTool;
public class ClasServiceImpl implements ClasService
{
private ClasDao clasDao;
Map<String, Object> queryParams = null;
public ClasDao getClasDao() {
return clasDao;
}
public void setClasDao(ClasDao clasDao) {
this.clasDao = clasDao;
}
@Override
public void createStudent(ClasDto dto) {
Student student = new Student();
student.setSid(BruceTool.getPrimaryKey());
student.setStudentName(dto.getStudent().getStudentName());
student.setAge(dto.getStudent().getStudentAge());
student.setGender(dto.getStudent().getStudentGender());
student.setAddress(dto.getStudent().getStudentAddress());
clasDao.createStudent(student);
}
}
报错:The type ClasServiceImpl must implement the inherited abstract method ClasService.createStudent(ClasDto)
这是为什么呢,接口定义的方法不是已经实现了吗?
------解决方案--------------------你把Override去掉试试。
------解决方案--------------------你如何调用的看看
------解决方案--------------------从你代码来看不可能出现这个问题
有两种原因
第一,你改成这样子,但是没有save文件,编译器还是报错
第二,你贴出来的代码跟源码不一致,源码可能多个空格或者是什么拼写错误
------解决方案--------------------
@Override是JDK5就已经有了,但有个小小的Bug,就是不支持对接口的实现,认为这不是Override
而JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override
修改你的eclipse指定的编译器版本
在选项里的java compiler中指定版本至少在5.0以上