當前位置: 首頁>>代碼示例>>Java>>正文


Java MethodInfo.isConstructor方法代碼示例

本文整理匯總了Java中javassist.bytecode.MethodInfo.isConstructor方法的典型用法代碼示例。如果您正苦於以下問題:Java MethodInfo.isConstructor方法的具體用法?Java MethodInfo.isConstructor怎麽用?Java MethodInfo.isConstructor使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javassist.bytecode.MethodInfo的用法示例。


在下文中一共展示了MethodInfo.isConstructor方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: getConstructors

import javassist.bytecode.MethodInfo; //導入方法依賴的package包/類
public List<JConstructor> getConstructors() throws ClasspathAccessException {

        final List<JConstructor> retVal = new ArrayList<JConstructor>();
        @SuppressWarnings("unchecked")
        final List<MethodInfo> methods = (List<MethodInfo>) getClassFile().getMethods();

        for (MethodInfo next : methods) {
            if (next.isConstructor()) {
                retVal.add(JConstructor.getJConstructor(next, this, getResolver()));
            }
        }
        
        if (retVal.isEmpty()) {
        	retVal.add(JDefaultConstructor.getJConstructor((MethodInfo)null, (JClass)this, getResolver()));
        }
        	
        return retVal;
    }
 
開發者ID:JadiraOrg,項目名稱:jadira,代碼行數:19,代碼來源:JClass.java

示例2: modifyConstructors

import javassist.bytecode.MethodInfo; //導入方法依賴的package包/類
private void modifyConstructors(ClassFile cf)
    throws CannotCompileException, NotFoundException
{
    if (fieldInitializers == null)
        return;

    ConstPool cp = cf.getConstPool();
    List<MethodInfo> list = cf.getMethods();
    int n = list.size();
    for (int i = 0; i < n; ++i) {
        MethodInfo minfo = (MethodInfo)list.get(i);
        if (minfo.isConstructor()) {
            CodeAttribute codeAttr = minfo.getCodeAttribute();
            if (codeAttr != null)
                try {
                    Bytecode init = new Bytecode(cp, 0,
                                            codeAttr.getMaxLocals());
                    CtClass[] params
                        = Descriptor.getParameterTypes(
                                            minfo.getDescriptor(),
                                            classPool);
                    int stacksize = makeFieldInitializer(init, params);
                    insertAuxInitializer(codeAttr, init, stacksize);
                    minfo.rebuildStackMapIf6(classPool, cf);
                }
                catch (BadBytecode e) {
                    throw new CannotCompileException(e);
                }
        }
    }
}
 
開發者ID:AndreJCL,項目名稱:JCL,代碼行數:32,代碼來源:CtClassType.java

示例3: attach

import javassist.bytecode.MethodInfo; //導入方法依賴的package包/類
/**
 * Attaches a javassist behavior.
 * 
 * @param behavior the javassist behavior
 * 
 * @since 1.00
 */
void attach(CtBehavior behavior) {
    super.attach(behavior);
    this.behavior = behavior;
    MethodInfo methodInfo2 = behavior.getMethodInfo2();
    clazz = behavior.getDeclaringClass().getName();
    if (methodInfo2.isConstructor()) {
        sthis = "$0";
    } else if (methodInfo2.isStaticInitializer() 
        || Modifier.isStatic(behavior.getModifiers())) {
        sthis = "null";
    } else if (behavior instanceof CtMethod) {
        sthis = "$0";
    }
}
 
開發者ID:SSEHUB,項目名稱:spassMeter,代碼行數:22,代碼來源:JABehavior.java

示例4: fillMethodsAndConstructors

import javassist.bytecode.MethodInfo; //導入方法依賴的package包/類
private void fillMethodsAndConstructors() {
    this.methods = new ArrayList<>();
    this.constructors = new ArrayList<>();
    @SuppressWarnings("unchecked")
    final List<MethodInfo> ms = this.cf.getMethods();
    for (MethodInfo m : ms) {
        final Signature sig = new Signature(getClassName(), m.getDescriptor(), m.getName());
        this.methods.add(sig);
        if (m.isConstructor()) {
            this.constructors.add(sig);
        }
    }
}
 
開發者ID:pietrobraione,項目名稱:jbse,代碼行數:14,代碼來源:ClassFileJavassist.java

示例5: modifyConstructors

import javassist.bytecode.MethodInfo; //導入方法依賴的package包/類
private void modifyConstructors(ClassFile cf)
    throws CannotCompileException, NotFoundException
{
    if (fieldInitializers == null)
        return;

    ConstPool cp = cf.getConstPool();
    List list = cf.getMethods();
    int n = list.size();
    for (int i = 0; i < n; ++i) {
        MethodInfo minfo = (MethodInfo)list.get(i);
        if (minfo.isConstructor()) {
            CodeAttribute codeAttr = minfo.getCodeAttribute();
            if (codeAttr != null)
                try {
                    Bytecode init = new Bytecode(cp, 0,
                                            codeAttr.getMaxLocals());
                    CtClass[] params
                        = Descriptor.getParameterTypes(
                                            minfo.getDescriptor(),
                                            classPool);
                    int stacksize = makeFieldInitializer(init, params);
                    insertAuxInitializer(codeAttr, init, stacksize);
                    minfo.rebuildStackMapIf6(classPool, cf);
                }
                catch (BadBytecode e) {
                    throw new CannotCompileException(e);
                }
        }
    }
}
 
開發者ID:MeRPG2,項目名稱:EndHQ-Libraries,代碼行數:32,代碼來源:CtClassType.java


注:本文中的javassist.bytecode.MethodInfo.isConstructor方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。