class BaseModel implements Serializable {
private static final long serialVersionUID = 1L;
}
class Student extends BaseModel {
private static final long serialVersionUID = 1814118305976862163L;
}
class BaseService {
protected BaseDao baseDao;// = new BaseDao();
public BaseService(T baseModel) {
baseDao = new BaseDao(baseModel);
}
}
class BaseDao {
protected String className;
protected T test;
public BaseDao(T baseModel) {
className = baseModel.getClass().getSimpleName();
System.out.println("className " + className);
// System.out.println("getClass() "+getClass());
// System.out.println("getClass().getGenericSuperclass() "+getClass().getGenericSuperclass());
}
}
class StudentService extends BaseService {
public StudentService() {
super(new Student());
}
}
class StudentDao extends BaseDao {
public StudentDao() {
super(new Student());
}
}
public class Test {
public static void main(String[] args) {
// 测试一
StudentDao studentDao = new StudentDao();
// System.out.println(studentDao.className);// 输出Student
// System.out.println(teacherDao.className);// 输出Teacher,这里和问题2相关,给出的代码中省略了Teacher的相关类
// 测试二
StudentService studentService = new StudentService();// 报错
// System.out.println(studentService.className);// 输出Student
}
}