本文整理匯總了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;
}
示例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);
}
}
}
}
示例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";
}
}
示例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);
}
}
}
示例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);
}
}
}
}