当前位置: 首页>>代码示例>>Java>>正文


Java BytecodeDescriptor.parseMethod方法代码示例

本文整理汇总了Java中sun.invoke.util.BytecodeDescriptor.parseMethod方法的典型用法代码示例。如果您正苦于以下问题:Java BytecodeDescriptor.parseMethod方法的具体用法?Java BytecodeDescriptor.parseMethod怎么用?Java BytecodeDescriptor.parseMethod使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在sun.invoke.util.BytecodeDescriptor的用法示例。


在下文中一共展示了BytecodeDescriptor.parseMethod方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: fromDescriptor

import sun.invoke.util.BytecodeDescriptor; //导入方法依赖的package包/类
/**
 * Same as {@link #fromMethodDescriptorString(String, ClassLoader)}, but
 * {@code null} ClassLoader means the bootstrap loader is used here.
 * <p>
 * IMPORTANT: This method is preferable for JDK internal use as it more
 * correctly interprets {@code null} ClassLoader than
 * {@link #fromMethodDescriptorString(String, ClassLoader)}.
 * Use of this method also avoids early initialization issues when system
 * ClassLoader is not initialized yet.
 */
static MethodType fromDescriptor(String descriptor, ClassLoader loader)
    throws IllegalArgumentException, TypeNotPresentException
{
    if (!descriptor.startsWith("(") ||  // also generates NPE if needed
        descriptor.indexOf(')') < 0 ||
        descriptor.indexOf('.') >= 0)
        throw newIllegalArgumentException("not a method descriptor: "+descriptor);
    List<Class<?>> types = BytecodeDescriptor.parseMethod(descriptor, loader);
    Class<?> rtype = types.remove(types.size() - 1);
    Class<?>[] ptypes = listToArray(types);
    return makeImpl(rtype, ptypes, true);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:23,代码来源:MethodType.java

示例2: fromMethodDescriptorString

import sun.invoke.util.BytecodeDescriptor; //导入方法依赖的package包/类
/**
 * Finds or creates an instance of a method type, given the spelling of its bytecode descriptor.
 * Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[]) methodType}.
 * Any class or interface name embedded in the descriptor string
 * will be resolved by calling {@link ClassLoader#loadClass(java.lang.String)}
 * on the given loader (or if it is null, on the system class loader).
 * <p>
 * Note that it is possible to encounter method types which cannot be
 * constructed by this method, because their component types are
 * not all reachable from a common class loader.
 * <p>
 * This method is included for the benefit of applications that must
 * generate bytecodes that process method handles and {@code invokedynamic}.
 * @param descriptor a bytecode-level type descriptor string "(T...)T"
 * @param loader the class loader in which to look up the types
 * @return a method type matching the bytecode-level type descriptor
 * @throws NullPointerException if the string is null
 * @throws IllegalArgumentException if the string is not well-formed
 * @throws TypeNotPresentException if a named type cannot be found
 */
public static MethodType fromMethodDescriptorString(String descriptor, ClassLoader loader)
    throws IllegalArgumentException, TypeNotPresentException
{
    if (!descriptor.startsWith("(") ||  // also generates NPE if needed
        descriptor.indexOf(')') < 0 ||
        descriptor.indexOf('.') >= 0)
        throw newIllegalArgumentException("not a method descriptor: "+descriptor);
    List<Class<?>> types = BytecodeDescriptor.parseMethod(descriptor, loader);
    Class<?> rtype = types.remove(types.size() - 1);
    checkSlotCount(types.size());
    Class<?>[] ptypes = listToArray(types);
    return makeImpl(rtype, ptypes, true);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:34,代码来源:MethodType.java

示例3: fromMethodDescriptorString

import sun.invoke.util.BytecodeDescriptor; //导入方法依赖的package包/类
/**
 * Finds or creates an instance of a method type, given the spelling of its bytecode descriptor.
 * Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[]) methodType}.
 * Any class or interface name embedded in the descriptor string
 * will be resolved by calling {@link ClassLoader#loadClass(java.lang.String)}
 * on the given loader (or if it is null, on the system class loader).
 * <p>
 * Note that it is possible to encounter method types which cannot be
 * constructed by this method, because their component types are
 * not all reachable from a common class loader.
 * <p>
 * This method is included for the benfit of applications that must
 * generate bytecodes that process method handles and {@code invokedynamic}.
 * @param descriptor a bytecode-level type descriptor string "(T...)T"
 * @param loader the class loader in which to look up the types
 * @return a method type matching the bytecode-level type descriptor
 * @throws NullPointerException if the string is null
 * @throws IllegalArgumentException if the string is not well-formed
 * @throws TypeNotPresentException if a named type cannot be found
 */
public static MethodType fromMethodDescriptorString(String descriptor, ClassLoader loader)
    throws IllegalArgumentException, TypeNotPresentException
{
    if (!descriptor.startsWith("(") ||  // also generates NPE if needed
        descriptor.indexOf(')') < 0 ||
        descriptor.indexOf('.') >= 0)
        throw new IllegalArgumentException("not a method descriptor: "+descriptor);
    List<Class<?>> types = BytecodeDescriptor.parseMethod(descriptor, loader);
    Class<?> rtype = types.remove(types.size() - 1);
    checkSlotCount(types.size());
    Class<?>[] ptypes = listToArray(types);
    return makeImpl(rtype, ptypes, true);
}
 
开发者ID:ZhaoX,项目名称:jdk-1.7-annotated,代码行数:34,代码来源:MethodType.java

示例4: fromMethodDescriptorString

import sun.invoke.util.BytecodeDescriptor; //导入方法依赖的package包/类
/**
 * Finds or creates an instance of a method type, given the spelling of its bytecode descriptor.
 * Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[]) methodType}.
 * Any class or interface name embedded in the descriptor string
 * will be resolved by calling {@link ClassLoader#loadClass(java.lang.String)}
 * on the given loader (or if it is null, on the system class loader).
 * <p>
 * Note that it is possible to encounter method types which cannot be
 * constructed by this method, because their component types are
 * not all reachable from a common class loader.
 * <p>
 * This method is included for the benefit of applications that must
 * generate bytecodes that process method handles and {@code invokedynamic}.
 * @param descriptor a bytecode-level type descriptor string "(T...)T"
 * @param loader the class loader in which to look up the types
 * @return a method type matching the bytecode-level type descriptor
 * @throws NullPointerException if the string is null
 * @throws IllegalArgumentException if the string is not well-formed
 * @throws TypeNotPresentException if a named type cannot be found
 */
public static MethodType fromMethodDescriptorString(String descriptor, ClassLoader loader)
    throws IllegalArgumentException, TypeNotPresentException
{
    if (!descriptor.startsWith("(") ||  // also generates NPE if needed
        descriptor.indexOf(')') < 0 ||
        descriptor.indexOf('.') >= 0)
        throw new IllegalArgumentException("not a method descriptor: "+descriptor);
    List<Class<?>> types = BytecodeDescriptor.parseMethod(descriptor, loader);
    Class<?> rtype = types.remove(types.size() - 1);
    checkSlotCount(types.size());
    Class<?>[] ptypes = listToArray(types);
    return makeImpl(rtype, ptypes, true);
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:34,代码来源:MethodType.java


注:本文中的sun.invoke.util.BytecodeDescriptor.parseMethod方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。