jls

    59热度

    4回答

    考虑下面的示例代码 class MyClass { public String var = "base"; public void printVar() { System.out.println(var); } } class MyDerivedClass extends MyClass { public String var = "de

    3热度

    1回答

    为什么不能有多个出口从静态初始化? Java语言规范是如此陈述的吗? 当试图编译代码: class HelloWorldApp { static { if(1 > 2) return; System.out.println("static"); } public static void main(String[] args) {

    15热度

    2回答

    我有以下类: import java.util.HashSet; import java.util.List; public class OverloadTest<T> extends HashSet<List<T>> { private static final long serialVersionUID = 1L; public OverloadTest(Overl

    5热度

    1回答

    尽管Java的语法似乎是在JLS规格非常精确的描述,也有一些我无法应用上给出的定义具体案例。 例如,以一章中的ClassInstanceCreationExpression规则JLS8,非合格new表达式15.9应该是这样的形式: new [TypeArguments] {Annotation} Identifier [TypeArgumentsOrDiamond] ([ArgumentList]

    4热度

    1回答

    http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.9 对于每个的Ti(1≤I≤n)时,让次是最特定的类或数组类型,使得钛<:次。那么必定存在一些Tk,使得对于任何i(1≤i≤n),或发生编译时错误。对于1≤j≤n,如果Tj是一个类型变量,那么令Tj'为其成员与Tj的公共成员相同的接口;否则,如果Tj是一个接口,那么令

    1热度

    2回答

    我知道$可以用作Java中的方法名称。还有什么? class MyClass { String $() { return "I've never been expected anyone would invoke me"; } } 这实际上是一个实际问题。我正在寻找除$之外的其他人。

    3热度

    1回答

    http://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html#jls-6.2 规格说: 在确定其中名称出现被 考虑一个名称(§6.5),上下文的含义。 §6.5的规则区分名称必须表示 (参考)包(第6.5.3节),类型(第6.5.5),表达式 (第6.5.6节)中的变量或值的上下文。或方法(第6.5.7节)。 所以,据我了解,名称只能表示上

    6热度

    1回答

    有人可以解释在JLS §8.4.8.4提到的“严格默认抽象和默认默认冲突规则”。 它们是在JLS中定义的吗?我似乎无法找到他们的定义。

    3热度

    2回答

    这是写在JLS访问(见8.3): “超类的私有字段可能是访问一个子类 - 例如,如果 两个类的成员同一类。然而,私人领域永远不会由一个子类继承 。“ 你可以给这个陈述的例子吗? 我知道,我们可以这样写: public class MyClass { private int x = 1; public void testExample(MyClass m) { m.

    10热度

    2回答

    下面编译代码和8暧昧方法参考运行在Java 7中确定,但未能在Java编译1.8.0 U25: public class GenericTest { public static class GenericClass<T> { T value; public GenericClass(T value) { this.value = value;