在Java中,字节是带符号的(-128到127),这意味着输入流可以读取-1而不会到达文件末尾。
那么,程序员如何知道输入流返回的-1是表示文件末尾还是实际的字节值-1?
在下面的示例中,如果我创建一个名为example的类的构造函数,如下所示:
public class Example{
public Example(){
this.super();
}
}
Run Code Online (Sandbox Code Playgroud)
上面的方法不起作用,因为会javac Example.java通知以下编译错误:
Example.java:3: error: illegal qualifier; Object is not an inner class
this.super();
^
1 error
Run Code Online (Sandbox Code Playgroud)
但是,它不应该像this使用隐式声明那样工作,而不是通过使用super()显式声明this吗?
在Java中,枚举声明如下:
enum Fruits{
BANANA,
ORANGE,
APPLE
}
Run Code Online (Sandbox Code Playgroud)
在示例中,声明的枚举与类具有相同的类型。因此,当我创建枚举Fruits的实例时:
Fruits example = Fruits.ORANGE
Run Code Online (Sandbox Code Playgroud)
这意味着将创建一个枚举水果的实例,然后继续为每个枚举创建实例。鉴于水果中的每个枚举都是水果类型,它们会继续创建更多实例……等等,导致无限递归。我想念什么吗?