扩展阅读
  • java命名空间java.lang.management类managementfactory的类成员方法: getoperatingsystemmxbean定义及介绍
  • java.util.Date 和 java.slq.Date 如何最简单实现互换?
  • java命名空间java.lang.management接口memorypoolmxbean的类成员方法: isvalid定义及介绍
  • 轻量级Java开发工具 Java Tools
  • java命名空间java.lang.management接口threadmxbean的类成员方法: isthreadcputimesupported定义及介绍
  • 在下初学java,请各位大虾推荐几个java学习网站吧!
  • java命名空间java.lang.management接口memorymanagermxbean的类成员方法: isvalid定义及介绍
  • 各位大虾,为什么我的java程序能通过编译,但是在用java命令运行程序的时候却老是报错“Exception in thread "main" java.lang.NoClassDe
  • java命名空间java.awt.image接口imageobserver的类成员方法: properties定义及介绍
  • 请问:java 入门以及学好Java要看哪些书籍阿????
  • java命名空间java.sql类types的类成员方法: other定义及介绍
  • Java源码工具 java2html
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • java bean和java class的区别??
  • java命名空间java.awt类color的类成员方法: gettransparency定义及介绍
  • 学习JAVA,请推荐好的 JAVA站点!
  • java命名空间java.lang.management类memoryusage的类成员方法: getcommitted定义及介绍
  • 关于Java好的网站,哪个Java好的教程。
  • java命名空间java.text类decimalformat的类成员方法: setparsebigdecimal定义及介绍
  • 如何将java.util.Date转化成java.sql.Date?
  • java命名空间java.beans接口propertyeditor的类成员方法: getvalue定义及介绍
  • 如何设置java应用程序的风格,如java风格,和windows风格!
  •  
    当前位置:  编程语言>java/jsp

    java命名空间java.lang.instrument接口instrumentation的类成员方法: redefineclasses定义及介绍

     
        发布时间:2014-2-17  


        本文导语:  redefineclasses void redefineclasses(classdefinition... definitions) throws classnotfoundexception, unmodifiableclassexception 使用提供的类文件重定义提供的类集。 此方法用于替代类的定义,而不引用现有的类文件...

    redefineclasses

    void redefineclasses(classdefinition... definitions)
                         throws classnotfoundexception,
                                unmodifiableclassexception
    使用提供的文件重定义提供的类集。

    方法用于替代类的定义,而不引用现有的类文件字节,这与 fix-and-continue 调试过程中重新编译源代码时所做的一样。需要转换现有类文件字节的地方(例如,字节码检测中)应该使用 retransformclasses

    此方法在一个集合上操作,以便允许同时对多个类进行相互依赖的更改(重定义类 a 要求重定义类 b)。

    如果重定义的方法有活动的堆栈帧,那么这些活动的帧将继续运行原方法的字节码。将在新的调用上使用此重定义的方法。

    此方法不会引起任何初始化操作,jvm 惯例语义下发生的初始化除外。换句话说,重定义一个类不会引起其初始化方法的运行。静态变量的值将与调用之前的值一样。

    重定义类的实例不受影响。

    重定义可能会更改方法体、常量池和属性。重定义不得添加、移除、重命名字段或方法;不得更改方法签名、继承关系。在以后的版本中,可能会取消这些限制。在应用转换之前,类文件字节不会被检查、验证和安装。如果结果字节错误,此方法将抛出异常

    如果此方法抛出异常,则不会重定义任何类。

    此方法旨在用于检测,正如类规范所述。

    参数
    definitions - 要使用相应定义来进行重定义的类数组;允许长度为 0 数组,在这种情况下,此方法不执行任何操作
    抛出:
    unmodifiableclassexception - 如果无法修改指定的类(ismodifiableclass(java.lang.class>) 返回 false
    unsupportedoperationexception - 如果 jvm 的当前配置不允许重定义(isredefineclassessupported() 为 false)或重定义试图做出不受支持的更改
    classformaterror - 如果数据不包含有效类
    noclassdeffounderror - 如果类文件中的名称与类名称不相等
    unsupportedclassversionerror - 如果类文件版本号不受支持
    classcircularityerror - 如果新类包含循环
    linkageerror - 如果发生链接错误
    nullpointerexception - 如果提供的定义数组或其任何组件为 null
    classnotfoundexception - 不会抛出(存在只是为了兼容
    另请参见:
    isredefineclassessupported(), addtransformer(java.lang.instrument.classfiletransformer, boolean), classfiletransformer
    相关文章推荐:


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3