📄 instrumentation.html
字号:
<P><DD><DL><DT><B>参数:</B><DD><CODE>transformer</CODE> - 要注册的转换器<DT><B>抛出:</B><DD><CODE><A HREF="../NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果传递了一个 <code>null</code> 转换器</DL></DD></DL><HR><A NAME="removeTransformer(java.lang.instrument.ClassFileTransformer)"><!-- --></A><H3>removeTransformer</H3><PRE>boolean <B>removeTransformer</B>(<A HREF="ClassFileTransformer.html" title="java.lang.instrument 中的接口">ClassFileTransformer</A> transformer)</PRE><DL><DD>注销提供的转换器。以后的类定义将不显示给该转换器。移除最近添加的转换器的匹配实例。由于类加载的多线程特性,在调用被移除后,转换器还可能接收调用。所以编写的转换器应防止出现这种情况。<P><DD><DL><DT><B>参数:</B><DD><CODE>transformer</CODE> - 要注销的转换器<DT><B>返回:</B><DD>如果找到并移除转换器,则返回 true;如果找不到转换器,则返回 false<DT><B>抛出:</B><DD><CODE><A HREF="../NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果传递了一个 <code>null</code> 转换器</DL></DD></DL><HR><A NAME="isRedefineClassesSupported()"><!-- --></A><H3>isRedefineClassesSupported</H3><PRE>boolean <B>isRedefineClassesSupported</B>()</PRE><DL><DD>返回当前 JVM 配置是否支持类的重定义。重定义已加载类的能力是 JVM 的一个可选功能。在执行单个 JVM 的单实例化过程中,对此方法的多个调用将始终返回同一应答。<P><DD><DL><DT><B>返回:</B><DD>如果当前 JVM 配置支持类的重定义,则为 true,否则为 false。<DT><B>另请参见:</B><DD><A HREF="Instrumentation.html#redefineClasses(java.lang.instrument.ClassDefinition[])"><CODE>redefineClasses(java.lang.instrument.ClassDefinition[])</CODE></A></DL></DD></DL><HR><A NAME="redefineClasses(java.lang.instrument.ClassDefinition[])"><!-- --></A><H3>redefineClasses</H3><PRE>void <B>redefineClasses</B>(<A HREF="ClassDefinition.html" title="java.lang.instrument 中的类">ClassDefinition</A>[] definitions) throws <A HREF="../ClassNotFoundException.html" title="java.lang 中的类">ClassNotFoundException</A>, <A HREF="UnmodifiableClassException.html" title="java.lang.instrument 中的类">UnmodifiableClassException</A></PRE><DL><DD>使用提供的类文件重定义提供的类集。对集合进行操作,以允许同时对多个类进行互锁定更改(重定义类 A 要求重定义类 B)。 <P>如果重定义的方法有活动的堆栈帧,则这些活动的帧会继续运行初始方法的字节码。将在新的调用上使用此重定义的方法。 <P>此方法不会导致任何初始化(除非它发生在自定义 JVM 语义中)。换句话说,重定义类不会导致其初始化程序运行。静态变量的值将保持为该调用之前的值。 <P>重定义类的实例不受影响。 <P>已注册的转换器在应用重定义操作之前将被调用。 <P>该重定义可以更改方法体、常量池和属性。该重定义不能添加、移除或重命名字段或方法、更改方法签名或者更改继承。以后的版本可能会去掉这些限制。 <P>允许零长度 <code>definitions</code> 数组,在这种情况下,此方法不执行任何操作。 <P>如果此方法抛出异常,则不会重定义任何类。 <P>此方法旨在用于检测,如 <A HREF="Instrumentation.html" title="java.lang.instrument 中的接口">类规范</A> 中的描述。<P><DD><DL><DT><B>参数:</B><DD><CODE>definitions</CODE> - 要使用相应定义来进行重定义的类的数组<DT><B>抛出:</B><DD><CODE><A HREF="../ClassNotFoundException.html" title="java.lang 中的类">ClassNotFoundException</A></CODE> - 如果找不到指定的类<DD><CODE><A HREF="UnmodifiableClassException.html" title="java.lang.instrument 中的类">UnmodifiableClassException</A></CODE> - 如果无法修改指定的类<DD><CODE><A HREF="../UnsupportedOperationException.html" title="java.lang 中的类">UnsupportedOperationException</A></CODE> - 如果 JVM 的当前配置不允许重定义(<A HREF="Instrumentation.html#isRedefineClassesSupported()"><CODE>isRedefineClassesSupported()</CODE></A> 为 false)或重定义做了不支持的更改<DD><CODE><A HREF="../ClassFormatError.html" title="java.lang 中的类">ClassFormatError</A></CODE> - 如果数据不包含有效类<DD><CODE><A HREF="../NoClassDefFoundError.html" title="java.lang 中的类">NoClassDefFoundError</A></CODE> - 如果类文件中的名称与类名称不相等<DD><CODE><A HREF="../UnsupportedClassVersionError.html" title="java.lang 中的类">UnsupportedClassVersionError</A></CODE> - 如果类文件版本号不受支持<DD><CODE><A HREF="../ClassCircularityError.html" title="java.lang 中的类">ClassCircularityError</A></CODE> - 如果新类包含循环<DD><CODE><A HREF="../LinkageError.html" title="java.lang 中的类">LinkageError</A></CODE> - 如果发生链接错误<DD><CODE><A HREF="../NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果提供的定义数组或其任何组件为 <code>null</code>。<DT><B>另请参见:</B><DD><A HREF="Instrumentation.html#isRedefineClassesSupported()"><CODE>isRedefineClassesSupported()</CODE></A>, <A HREF="Instrumentation.html#addTransformer(java.lang.instrument.ClassFileTransformer)"><CODE>addTransformer(java.lang.instrument.ClassFileTransformer)</CODE></A>, <A HREF="ClassFileTransformer.html" title="java.lang.instrument 中的接口"><CODE>ClassFileTransformer</CODE></A></DL></DD></DL><HR><A NAME="getAllLoadedClasses()"><!-- --></A><H3>getAllLoadedClasses</H3><PRE><A HREF="../Class.html" title="java.lang 中的类">Class</A>[] <B>getAllLoadedClasses</B>()</PRE><DL><DD>返回当前由 JVM 加载的所有类的数组。<P><DD><DL><DT><B>返回:</B><DD>包含由 JVM 加载的所有类的数组,如果没有,则返回长度为零的数组</DL></DD></DL><HR><A NAME="getInitiatedClasses(java.lang.ClassLoader)"><!-- --></A><H3>getInitiatedClasses</H3><PRE><A HREF="../Class.html" title="java.lang 中的类">Class</A>[] <B>getInitiatedClasses</B>(<A HREF="../ClassLoader.html" title="java.lang 中的类">ClassLoader</A> loader)</PRE><DL><DD>返回所有类的数组,<code>loader</code> 是类的初始化加载器。如果提供的加载器为 <code>null</code>,则返回由引导类加载器初始化的类。<P><DD><DL><DT><B>参数:</B><DD><CODE>loader</CODE> - 将返回其初始化类列表的加载器<DT><B>返回:</B><DD>包含所有类的数组,加载器是该类的初始加载器,如果没有,则返回长度为零的数组</DL></DD></DL><HR><A NAME="getObjectSize(java.lang.Object)"><!-- --></A><H3>getObjectSize</H3><PRE>long <B>getObjectSize</B>(<A HREF="../Object.html" title="java.lang 中的类">Object</A> objectToSize)</PRE><DL><DD>返回指定对象使用的特定于实现的存储量的近似值。该结果可能包括对象的部分或全部开销,因此,在一个实现中进行比较时较为有用,但不能用于实现之间的比较。该估计值在 JVM 的单一调用期间可能发生变化。<P><DD><DL><DT><B>参数:</B><DD><CODE>objectToSize</CODE> - 需要确定大小的对象<DT><B>返回:</B><DD>指定对象使用的特定于实现的存储量的近似值<DT><B>抛出:</B><DD><CODE><A HREF="../NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果提供的 Object 参数为 <code>null</code>。</DL></DD></DL><!-- ========= END OF CLASS DATA ========= --><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>类</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Instrumentation.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup> 2 Platform<br>Standard Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="IllegalClassFormatException.html" title="java.lang.instrument 中的类"><B>上一个类</B></A> <A HREF="UnmodifiableClassException.html" title="java.lang.instrument 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../index.html@java_2Flang_2Finstrument_2FInstrumentation.html" target="_top"><B>框架</B></A> <A HREF="Instrumentation.html" target="_top"><B>无框架</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../../allclasses-noframe.html"><B>所有类</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 摘要: 嵌套 | 字段 | 构造方法 | <A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息: 字段 | 构造方法 | <A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR><font size="-1"><a href="../../../../../../../../../java.sun.com/cgi-bin/bugreport.cgi">提交错误或意见</a><br>有关更多的 API 参考资料和开发人员文档,请参阅 <a href="../../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/devdocs-vs-specs.html">Java 2 SDK SE 开发人员文档</a>。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。 <p>版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守<a href="../../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/license.html">许可证条款</a>。另请参阅<a href="../../../../../../../../../java.sun.com/docs/redist.html">文档重新分发政策</a>。</font></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -