gpt4 book ai didi

java - Java 中的类是如何实例化的?

转载 作者:搜寻专家 更新时间:2023-11-01 02:43:33 25 4
gpt4 key购买 nike

我在 JLS8/15.9.1 中遇到了以下规则:

The Identifier after the new token must unambiguously denote an inner class that is accessible, non-abstract, not an enum type, and a member of the compile-time type of the Primary expression or the ExpressionName.

我无法想象最后一个限制意味着什么。或许您可以举例说明 ExpressionNamePrimary 表达式的编译时类型成员?

最佳答案

它说“如果类实例创建表达式是合格的”..那么..(你的引文)

所以,我猜是这种情况:

package test;

public class Test1 {
public class Test3{

}
}

然后在另一个类中实例化它,如下所示:

package test;

import test.Test1.Test3;

public class Maker {

public static void main(String[] args) {
Test1 test1 = new Test1();
Test3 test3 = test1.new Test3();
}

}

然后,

  1. 实例创建表达式是合格的:test1.new Test3()(test1.new, - 一个合格的新而不是一个不合格的新)
  2. 主要表达式是test1
  3. 主表达式的编译时类型是Test1
  4. 新标记后的标识符是 Test3,它明确表示类 Test3
  5. Test3 是可访问的、非抽象的、不是枚举类型,并且是 Test1 的编译时类型(主要表达式的编译时类型)的成员。

享受 :)

关于java - Java 中的类是如何实例化的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27997217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com