java - 综合参数与隐式参数

标签 java reflection parameters

在 Java 反射中:合成隐式参数之间有什么区别?

我已经完成了这个 Oracle 教程:https://docs.oracle.com/javase/tutorial/reflect/member/methodparameterreflection.html#implcit_and_synthetic这给我区分合成和隐式参数带来了一些困惑

只要显式创建参数,它就是隐式,不是吗?如果是这样,将合成参数视为隐式的子集是否公平(这与上述教程不符)?

最佳答案

只要显式创建参数,它就是隐式,不是吗?
不。
综合参数视为隐式的子集是否公平?
没有。

源代码中未指定隐式方法和参数。它们是由编译器生成的,因为 JLS(Java 语言规范)如此规定。 Oracle 文档提到了为没有显式构造函数(即在源代码中定义的构造函数)的类生成的默认无参数构造函数。另一个示例是使用一个参数生成的嵌套非静态类的默认构造函数 - 对外部实例的引用。这就是嵌套类如何访问外部类的所有变量和方法。

与隐式、合成方法和参数一样,源代码中没有指定。然而,JLS 中并未具体说明这些。它们是特定于编译器的。不同的编译器可能会产生不同的合成方法和参数。

关于java - 综合参数与隐式参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54551568/

相关文章:

java - 我怎样才能使这段代码更有效率?循环和大数据

c# - 使用反射的 Wcf 动态托管

parameters - NSIS LogicLib 参数失败

javascript - 如何删除 URL 中的参数并将其显示在地址栏中而不会导致 Javascript 中的重定向?

java - JAVA中在文件的一行末尾添加特定字符串

java - 我不知道为什么 A 的对象最后也被打印

c# - If 语句在类型转换后不起作用

C++ 将枚举作为参数传递

java - MVP模式中的数据库查询在哪里实现?

pointers - 为什么 Go 允许指向接口(interface)的指针?