我的一个朋友在Java
API(https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html)中找到了这个窍门,
Class Enum<E extends Enum<E>>
并通过阅读以下文章https://docs.oracle.com/javase/tutorial/java/generics/genTypes.html我可以理解上述行在语法上的含义,但是从给出的示例中我无法弄清楚这超出了Enum类(已检查源代码)。
我想详细了解上述可能提出的解决方案。
例如,允许子类使用自己的类型很有用
想象一个像
class Node {
Node next;
}
如果您扩展该类,则会陷入困境Node
。
class SpecialNode extends Node {
void foo() {
// euwww
SpecialNode nextNode = (SpecialNode) this.next;
}
}
您也不能像这样定义它
class Node<T> {
T next;
}
因为这样可以做任何事情T
。您确实想要T
那个,extends Node
否则您将无法Node
在Node
不进行强制转换的情况下从内部使用T。不过,它适用于儿童班。
通过使用递归边界
class Node<T extends Node<T>> {
T next;
}
您将T限制为您自己或您自己的子类,然后您就可以
class SpecialNode extends Node<SpecialNode> {
void foo() {
SpecialNode nextNode = this.next; // type-safe!
}
}
这样,父类和子类都可以完全抽象安全地访问其抽象级别上的所有内容。
我的一个朋友在Java API中发现了这条新闻(https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html), 通过阅读以下文章https://docs.oracle.com/javase/tutorial/java/generics/genTypes.html我可以理解前面提到的这一行在语法上意味着什么,但从给出的示例中,我无法找出
查看我在某处(这里是游乐场)找到的这个Typescript4.2片段: 我的头不能绕着它。TS如何处理这件事?它怎么不卡在无限递归里?具体地说,对于和的情况,悬停在变量上显示TS将类型解析为和。这是怎么回事?
我从本例中的createDataFrame调用中获得了一个StackOverflow Error。它起源于涉及java类型推理的scala代码,该代码在无限循环中调用自己。 堆栈跟踪的底部如下所示: 这与中报告的错误类似http://apache-spark-developers-list.1001551.n3.nabble.com/Stackoverflow-in-createDataFrame
我有一个
我来自Grails背景,最近在Micronaut使用GORM启动了一个项目。 我有以下代码: 应用程序编译和启动没有问题,但当我尝试访问url http:localhost:8080/author时,我收到以下错误: 10:25:29.431[nioEventLoopGroup-1-2]错误i.m.h.s.netty。RoutingInBoundHandler-发生意外错误:将对象[[micron
此代码是对更复杂代码的简化,以隔离问题: 导致以下错误: 我正在使用 Rust nightly (9c31d76e9 2016-10-03)。 该代码是一个结构,其中包含指向相同结构类型数组的 的指针。这些受累的数组被递归地称为在编写器中应用一些写入( trait约束被删除,因为它与问题无关),并且在实际代码中成为。 在某些地方,性状解析变得时髦,导致类型递归,在考虑性状解析的单态时,递归似乎相当