- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新:
感谢@RC 为我解决了这个问题:
public class DataHandler<I, T extends IDataStore<I>> implements IHollywood<T, I>
从他的评论中我学会了如何修复 ActorImpl:
public class ActorImpl extends DataHandler <Long, Actor> implements IHollywood
已解决。
我目前正在尝试学习 Java,但在使用泛型方面遇到了一些困难。我坚持如何使用两个不同的类型参数正确实现通用接口(interface),然后通过扩展原始接口(interface)的另外两个接口(interface)扩展这个新实现。
这就是我想要完成的:
public interface IDataStore<ID> extends Serializable
public interface IHollywood<T extends IDataStore <ID>, ID>
{
List<T> retrieve() throws Exception;
void sotre(T t) throws Exception;
}
public interface IActor extends IHollywood <Actor, Long>
public interface IDirector extends IHollywood <Director, Long>
public class DataHandler<T> implements IHollywood <IDataStore<T>, T>
public class ActorImpl implements IActor extends DataHandler
public class DirectorImpl implements IDirector extends DataHandler
我有两点困惑:
DataHandler 的正确签名是什么?目前我正在使用 public class DataHandler<T> implements IHollywood <IDataStore<T>, T>
我知道我正在通过 T
错误地作为两个参数却想不出正确的方法
ActorImpl
的正确方法是什么?和 DirectorImpl
实现IHollywood
并扩展 DataHandler
声明?
编辑/更新:
我会尽量提供更多细节:
// 1- support serialization
// provide interface to create/store/query persisted data
public interface IDataStore<ID> extends Serializable
public interface IHollywood<T extends IDataStore <ID>, ID>
// 2- provide an interface for Actor specific methods
public class Actor{}...
public interface IActor extends IHollywood <Actor, Long>
// Implement IActor
public class ActorImpl implements IActor
// 3- provide an interface for Director specific methods
public class Director{}...
public interface IDirector extends IHollywood <Director, Long>
// 4- Implement Director
public class DirectorImpl implements IDirector
// 5- Instead of CRUD, I’ll use a better name
// Implement retrieve()/store()/find methods
public class DataHandler <T> implements IHollywood <IDataStore<T>, T>
这样,我可以使用 DataHandler 来实现 IHollywood
的 retrieve()/store()/find() 方法。
我可以导出 ActorImpl
和 DirectorImpl
来自 DataHandler
使用它的 retrieve()/store()/find() 方法
我知道 IActor
和 IDirector
扩展IHollywood
但我不想重复执行 IHollywood
的 retrieve()/store()/find() 方法.我想要 DataHandler
实现它们和ActorImpl
和 DirectorImpl
除了在自己的实现中提供自己的特定方法外,只需继承和使用它们。
我希望这能澄清一些我需要帮助的地方。
最佳答案
感谢@RC 为我解决了这个问题:
public class DataHander<I, T extends IDataStore<I>> implements IHollywood<T, I>
从他的评论中我学会了如何修复 ActorImpl:
public class ActorImpl extends DataHander <Long, Actor> implements IHollywood
已解决。
关于java - 如何正确扩展和实现Java泛型接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38292722/
我是一名优秀的程序员,十分优秀!