1. 首页
  2. 编程语言
  3. Java
  4. 3分钟快速搞懂Java的桥接方法示例

3分钟快速搞懂Java的桥接方法示例

上传者: 2022-04-15 17:53:46上传 PDF文件 88.59 KB 热度 9次

我们可以通过Method类的isBridge方法来判断一个方法是否是桥接方法。在字节码文件中,桥接方法会被标记为ACC_BRIDGE和ACC_SYNTHETIC,其中ACC_BRIDGE用于表示该方法是由编译器产生的桥接方法,ACC_SYNTHETIC用于表示该方法是由编译器自动生成。最常见的两种情况就是协变返回值类型和类型擦除,因为它们导致了父类方法的参数和实际调用的方法参数类型不一致。下面我们通过两个例子更好地理解一下。在Java 1.5添加了对协变返回类型的支持,即子类重写父类方法时,返回的类型可以是子类方法返回类型的子类。下面看一个例子:Child类重写其父类Parent的get方法,Parent的get方法返回类型为Number,而Child类中get方法返回类型为Integer。将这段代码进行编译,再反编译:结果如下:

下载地址
用户评论