当前位置: 首页 > 面试题库 >

通用接口以self为参数。递归泛型?

詹钊
2023-03-14
问题内容

免责声明:我没有使用Java Generics的全部经验,但是我和我的同事花了很长时间尝试破译这种结构的接口:

interface HasAttributes<A extends HasAttributes<A, B>, 
                        B extends HasAttributesType<B>> extends Identification<B> {

接口泛型使用本身就是类型参数的确切含义是什么?这是做什么的?


问题答案:

这是有意义的-Java的Enum类是类似情况的一个很好的例子:

public abstract class Enum<E extends Enum<E>>
    implements Comparable<E>, Serializable

在有关Enum的问题中,有一些启发性的答案,应该可以为您特别了解泛型的这种用法,并且比我能更好地回答。



 类似资料:
  • 我只想从使用Log4j(v2.8.2)的Java移植以下代码: 问题在于newBuilder()方法,该方法在log4j中定义为某种递归泛型: Java代码会自动推断泛型参数,而Kotlin的情况并非如此。在Kotlin中调用此方法有什么解决方案吗? 我在Kotlin尝试的代码: 它有以下错误: 错误:(90,48)静态编程语言:类型推断失败:没有足够的信息来推断参数B的乐趣! 当代码在粘贴时自动

  • 问题内容: 是否可以通过泛型传递接口的类型? 界面: 在我的测试方法中: 把后面或没有工作。 问题答案: 有一种类型安全的方法:使用并使用以下类型进行限定:

  • 问题内容: 我很难理解如何设置已作为指针传递的接口值。我正在努力实现以下目标: 我要做什么才能使程序输出为 编辑:是否有可能使用所有解决方案? 问题答案: 您可以使用来模拟AppEngine数据存储接口。通常,我说的是最小化反射,但是您(以及AppEngine和其他ORM)在这里没有其他很好的选择来展示您想要的接口。对于模仿您的内容: 得到与 获得您想要创建的事物的类型 用它创建 (可选)使用,填

  • 问题内容: 我有一个界面: 和一个实现它的类 第三类实现了此方法: 现在我试图像这样调用该方法 但我不断得到一个例外说: 如果它连接了该类,该方法不起作用吗? 问题答案: 也许你需要

  • 问题内容: 编辑:“ 我从’erickson’那里收到了一个非常相关的答案,但是存在一个附带问题(向上投射?),这个问题在我的原始示例中并未明确涵盖,并且无法用他的答案解决。我将该示例扩展到涵盖了另一个问题,我已在本文结尾处将其包括在内。感谢您的帮助。 我目前面临Java泛型的问题,该问题与所谓的“好奇地重复的通用模式”有关。在阅读了Jon Skeet对这个问题“ java枚举定义”的答案之后,我

  • 问题内容: 我有一个抽象类: 我需要充实的孩子-每个孩子都有自己的孩子 我只找到一种解决方案,但需要编译器参数 这是最好的解决方案吗?没有我们可以做同样的事情吗? 问题答案: 实现此目的的类型安全但很简单的方法是传递令牌“编译器可以看到它的位置”: 如果您执行的是未经检查的强制转换,但您“知道自己在做什么”,并且希望编译器停止抱怨,则正确的方法是将非类型安全但您知道它们的工作位本地化。使用: (我