ChrisYez 2015-11-09 17:35 采纳率: 0%
浏览 1456
已采纳

请教一个JAVA的基础问题

有如下的一个接口,叫做:GenericDao,有几点不理解:
1、虽然知道E,K,V都是泛型,但是一直不太理解有什么用,比如:>这段代码有什么用,实现什么功能?如果不写会有什么影响?
2、为什么在类的定义中还可以extends,一般不都是 class A1 extends A,这么写么?为什么可以class A1

 package com.patsnap.common.bean;

import com.patsnap.common.entity.DBVersionEntity;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * Author:  shenyineng
 * Date:    9/25/15.
 */
public interface GenericDao<K extends Serializable, E extends DBVersionEntity<K>> {
    /**
     * Get target entity by id
     *
     * @param id specified id
     * @return specified entity
     */
    E get(@Valid @NotNull K id);

    /**
     * Save a entity
     *
     * @param entity specified entity
     */
    void save(@Valid @NotNull E entity);

    /**
     * Delete a specified entity
     *
     * @param entity specified entity
     */
    void delete(E entity);

    /**
     * Delete a target entity by its id
     *
     * @param id specified id
     */
    void delete(@Valid @NotNull K id);
}

希望谁能帮忙解答一下,多谢。

展开全部

  • 写回答

3条回答 默认 最新

  • wanghang1208 2015-11-09 18:19
    关注

    GenericDao是一个接口,并且是一个泛型接口,因为其定义时,在GenericDao后面有<>。<>中的K、E表示某种类型,但是只有到使用的时候才知道是什么类型。
    如果<>中仅仅是,那么K、E可以是任何类型,但是实际上有时我们只希望K、E是一些有限制的类,比如某个类的子类等。
    问题中但GenericDao泛型接口定义就是对K、E有限制,要求K是Serializable类的任何子类,E是DBVersionEntity类的任何子类。
    如果不这么写,别人在使用GenericDao接口的时候,可以将任何类型用到这个接口的实现中,造成代码出错。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部