`
zhengkunsheng
  • 浏览: 3953 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java synthetic class

阅读更多
Synthetic class does not appear in your code, but made up by compiler. E.g. Bridge method made up by compiler in java is typically synthetic.

public class Pair<T> {
    private T first;
    private T second;
    public void setSecond(T newValue) {
        second = newValue;
    }// Of seSecond
}// Of class Pair<T>


public class DateInterval extends Pair<String> {
    public void setSecond(String second) {
        System.out.println("OK sub");
    }

    public static void main(String[] args) throws NoSuchFieldException,    SecurityException {

        DateInterval interval = new DateInterval();
        Pair pair = interval;
        pair.setSecond("string1");
    }
}
Using javap -verbose DateInterval instruction, u can see a bridge method

public void setSecond(java.lang.Object);
flags: ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
it is made up by compiler, however does not appear in your code.
分享到:
评论

相关推荐

    浅谈Java编程中的synthetic关键字

    浅谈Java编程中的synthetic关键字 synthetic关键字是Java编程中的一种特殊关键字,用于标记Java虚拟机(JVM)生成的类成员,而不是在源代码中显式定义的。这些类成员包括字段和方法,它们是JVM为了实现某些语言特性...

    Java class文件格式之方法_动力节点Java学院整理

    Java Class文件是Java程序编译后的二进制表示形式,它是Java虚拟机(JVM)运行的基础。本文将详细解析Class文件中的方法部分,帮助读者理解其结构和功能。 首先,Class文件由多个结构化的数据单元组成,其中包括`...

    Java虚拟机(class文件结构)1

    Java虚拟机(JVM)是Java程序运行的基础,它通过解析和执行Class文件来实现Java的跨平台特性。Class文件的结构是理解JVM工作原理的关键。本文将深入探讨Class文件的主要组成部分,包括魔数、版本号、常量池、访问...

    java Class文件内部结构解析过程详解

    Java Class文件是Java程序的核心组成部分,它包含了编译后的字节码指令,元数据和类相关的其他信息。本文将深入探讨Java Class文件的内部结构,帮助理解其工作原理。 首先,每个Java Class文件都以一个特定的魔数...

    深入java虚拟机(inside the java virtual machine)

    The Java Class File The Java API The Java Programming Language Architectural Tradeoffs Future Trends On the CD-ROM The Resources Page 2 Platform independence Why Platform Independence? Java's ...

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

    第5-20章深入描述了java技术的内部细节,包括垃圾收集、java安全模型、java的连接模型和动态扩展机制、class文件、运算及流程控制等等,其中等6章和附录a-c完全可以作为class文件和指令含集的参考手册。本书还附带...

    class文件结构组成.doc

    Class文件是Java程序编译后的产物,由编译器生成并被Java虚拟机(JVM)加载执行。它以8位字节流的形式组织数据,共包含15个有意义的组成部分。每个部分紧密相连,不存在任何无意义的填充字节,这使得Class文件格式既...

    深入Java虚拟机

    1.3.3 Java class文件 1.3.4 Java API 1.3.5 Java程序设计语言 1.4 Java体系结构的代价 1.5 结论 1.6 资源页 第2章 平台无关 2.1 为什么要平台无关 2.2 Java的体系结构对平台无关的支持 2.2.1...

    class文件分析

    Class文件是Java虚拟机(JVM)可执行文件的一种格式,它由编译后的Java源代码生成,包含了编译后的字节码以及其他元数据信息。下面我们将对class文件的结构进行详细解析。 - **魔数(Magic Number)**: 类文件的开头...

    Java class文件格式之属性_动力节点Java学院整理

    Java class文件是Java虚拟机(JVM)执行的二进制格式,它是Java源代码经过编译后的产物。在这个文件中,包含了类的结构、方法、字段等信息,而属性(Attributes)是class文件中一个关键组成部分,用来提供额外的元...

    class文件结构参照表全集.pdf

    `class`文件是Java编译器生成的目标文件格式,也是Java虚拟机执行的基本单位。每个`.class`文件代表了一个Java类或者接口的定义,包含了类的元数据(如常量池、访问标志、类与父类的名字等)以及类的方法和字段信息...

    深入java虚拟机第二版

    1.3.3 Java class文件 1.3.4 Java API 1.3.5 Java程序设计语言 1.4 Java体系结构的代价 1.5 结论 1.6 资源页 第2章 平台无关 2.1 为什么要平台无关 2.2 Java的体系结构对平台无关的支持 2.2.1 Java平台...

    一些Java中不为人知的特殊方法.docx

    在Java编程语言中,存在一些不为初学者熟知的特性,其中包括`synthetic`和`bridge`方法。这些方法在反射API中可能会引起混淆,尤其是当开发者遇到`Modifier.isVolatile`返回`true`的情况。这里我们将深入探讨这两个...

    深入JAVA虚拟机(第2版)

    1.3.3 Java class文件 1.3.4 Java API 1.3.5 Java程序设计语言 1.4 Java体系结构的代价 1.5 结论 1.6 资源页 第2章 平台无关 2.1 为什么要平台无关 2.2 Java的体系结构对平台无关的支持 2.2.1...

    详细解读java同步之synchronized解析

    - **同步类**:使用`synthetic`关键字定义一个同步类,所有其成员方法都是同步的。 ```java synchronized class SyncClass { // ... } ``` 综上,`synchronized`关键字是Java中实现线程同步的关键,通过多种...

    λ表达式之争:Scala vs Java8

    Scala的实现则更为巧妙,它会生成一个合成类(synthetic class)来代表Lambda表达式,并且利用Scala集合框架的工厂模式来创建新的列表。Lambda对象继承自`scala.runtime.AbstractFunction1`,这样`map()`方法就可以...

    Java:"失效"的private修饰符

    当我们使用`javap`命令查看反编译结果时,可以看到Java编译器实际上创建了一个合成方法(synthetic method),如`access$0`,用于内部类访问外部类的private成员。这并不是说private修饰符失去了作用,而是编译器...

    极客谷杯WP1

    R.class文件是一种Java类文件,包含了Java代码。反编译后的代码显示,这个类文件包含了一个名为R的类,该类有一个构造函数和一个名为waf1的方法。waf1方法用于检测输入的字符串是否包含一些敏感词,如果包含则返回...

    JRebel配置手册[收集].pdf

    在左侧选择 Java —— Debug —— Step Filtering,然后勾选 Use Step Filters 和 Filter synthetic methods (requires VM support) 。点击 Add Filter 按钮添加 add com.zeroturnaround.* 和 org.zeroturnaround.* ...

    android jar包混淆

    Android JAR 包混淆是一种保护 Java 代码的方式,它可以将 JAR 包中的代码混淆,使得攻击者无法轻易地反编译和盗用代码。混淆过程中,需要使用 ProGuard 工具,该工具可以将 JAR 包中的代码混淆,使得代码变得难以...

Global site tag (gtag.js) - Google Analytics