Package cool.taomu.framework.utils.asm
Class BytecodeUtils
- java.lang.Object
-
- java.lang.ClassLoader
-
- cool.taomu.framework.utils.asm.BytecodeUtils
-
public final class BytecodeUtils extends java.lang.ClassLoader
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceBytecodeUtils.Asm<T>定义一个接口用来提供除构造函数外的字节码操作static classBytecodeUtils.Variable
-
Constructor Summary
Constructors Constructor Description BytecodeUtils()BytecodeUtils(int version, java.lang.String name)BytecodeUtils(java.lang.String name)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BytecodeUtilsbuildArguments(org.objectweb.asm.commons.Method method)BytecodeUtilsbuildReturnValue(java.lang.reflect.Method m)BytecodeUtilscheckCast(java.lang.Class<?> type)<T> BytecodeUtilscoding(java.lang.Class<T> zlass, BytecodeUtils.Asm<T> code)BytecodeUtilscreateAbstract()BytecodeUtilscreateAbstract(java.lang.Class<?> superClass, java.lang.String... inters)BytecodeUtilscreateAbstract(java.lang.String... inters)BytecodeUtilscreateClass()BytecodeUtilscreateClass(int access, java.lang.Class<?> superClass, java.lang.String... inters)BytecodeUtilscreateClass(java.lang.Class<?> superClass, java.lang.String... inters)BytecodeUtilscreateClass(java.lang.String... inters)BytecodeUtilscreateField(java.lang.String name, int access, java.lang.Class<?> type, java.lang.Object value)BytecodeUtilscreateInterface(java.lang.String... inters)BytecodeUtilscreateMethod(int access, java.lang.reflect.Method method)BytecodeUtilscreateMethod(int access, java.lang.String method, boolean defaultPackage)BytecodeUtilscreateMethod(java.lang.reflect.Method method)BytecodeUtilscreateMethod(java.lang.String method)BytecodeUtilscreateMethod(java.lang.String method, boolean defaultPackage)BytecodeUtilsdup()BytecodeUtilsend()BytecodeUtilsendMethod()java.lang.Class<?>findClass(java.lang.String name)BytecodeUtilsgoTo(java.lang.String key)BytecodeUtilsifCmp(java.lang.String key, int mode, java.lang.Class<?> zlass)BytecodeUtilsifNonNull(java.lang.String key)BytecodeUtilsifNull(java.lang.String key)BytecodeUtilsinit(java.lang.reflect.Constructor<?>[] constructor)BytecodeUtilsinvokeDynamic(int tag, java.lang.String internalName, org.objectweb.asm.commons.Method method)BytecodeUtilsinvokeDynamic(java.lang.Class<?> zlass, org.objectweb.asm.commons.Method method)BytecodeUtilsinvokeStatic(java.lang.Class<?> type, java.lang.String method)BytecodeUtilsinvokeStatic(java.lang.String internalName, java.lang.String method, boolean defaultPackage)BytecodeUtilsinvokeVirtual(java.lang.Class<?> zlass, java.lang.reflect.Method method)BytecodeUtilsinvokeVirtual(java.lang.Class<?> zlass, java.lang.String method)BytecodeUtilsinvokeVirtual(java.lang.String internalName, java.lang.reflect.Method method)BytecodeUtilsinvokeVirtual(java.lang.String internalName, java.lang.String method)BytecodeUtilsinvokeVirtual(java.lang.String internalName, java.lang.String method, boolean defaultPackage)BytecodeUtilsload(java.lang.String key)BytecodeUtilsloadArg(int index)BytecodeUtilsmark(java.lang.String key)BytecodeUtilspush(int index)BytecodeUtilspush(java.lang.String value)BytecodeUtilsreturnValue()BytecodeUtilsstore(java.lang.String key, java.lang.Class<?> zlass)byte[]toByteArray()-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Method Detail
-
createClass
public BytecodeUtils createClass(int access, java.lang.Class<?> superClass, java.lang.String... inters)
-
createClass
public BytecodeUtils createClass(java.lang.Class<?> superClass, java.lang.String... inters)
-
createClass
public BytecodeUtils createClass(java.lang.String... inters)
-
createClass
public BytecodeUtils createClass()
-
createInterface
public BytecodeUtils createInterface(java.lang.String... inters)
-
createAbstract
public BytecodeUtils createAbstract(java.lang.Class<?> superClass, java.lang.String... inters)
-
createAbstract
public BytecodeUtils createAbstract(java.lang.String... inters)
-
createAbstract
public BytecodeUtils createAbstract()
-
init
public BytecodeUtils init(java.lang.reflect.Constructor<?>[] constructor)
-
createField
public BytecodeUtils createField(java.lang.String name, int access, java.lang.Class<?> type, java.lang.Object value)
-
createMethod
public BytecodeUtils createMethod(java.lang.String method, boolean defaultPackage)
-
createMethod
public BytecodeUtils createMethod(java.lang.String method)
-
createMethod
public BytecodeUtils createMethod(int access, java.lang.String method, boolean defaultPackage)
-
createMethod
public BytecodeUtils createMethod(java.lang.reflect.Method method)
-
createMethod
public BytecodeUtils createMethod(int access, java.lang.reflect.Method method)
-
invokeVirtual
public BytecodeUtils invokeVirtual(java.lang.String internalName, java.lang.String method, boolean defaultPackage)
-
invokeVirtual
public BytecodeUtils invokeVirtual(java.lang.String internalName, java.lang.String method)
-
invokeVirtual
public BytecodeUtils invokeVirtual(java.lang.Class<?> zlass, java.lang.reflect.Method method)
-
invokeVirtual
public BytecodeUtils invokeVirtual(java.lang.Class<?> zlass, java.lang.String method)
-
invokeVirtual
public BytecodeUtils invokeVirtual(java.lang.String internalName, java.lang.reflect.Method method)
-
invokeStatic
public BytecodeUtils invokeStatic(java.lang.Class<?> type, java.lang.String method)
-
invokeStatic
public BytecodeUtils invokeStatic(java.lang.String internalName, java.lang.String method, boolean defaultPackage)
-
invokeDynamic
public BytecodeUtils invokeDynamic(int tag, java.lang.String internalName, org.objectweb.asm.commons.Method method)
-
invokeDynamic
public BytecodeUtils invokeDynamic(java.lang.Class<?> zlass, org.objectweb.asm.commons.Method method)
-
returnValue
public BytecodeUtils returnValue()
-
load
public BytecodeUtils load(java.lang.String key)
-
store
public BytecodeUtils store(java.lang.String key, java.lang.Class<?> zlass)
-
mark
public BytecodeUtils mark(java.lang.String key)
-
goTo
public BytecodeUtils goTo(java.lang.String key)
-
ifNull
public BytecodeUtils ifNull(java.lang.String key)
-
ifNonNull
public BytecodeUtils ifNonNull(java.lang.String key)
-
ifCmp
public BytecodeUtils ifCmp(java.lang.String key, int mode, java.lang.Class<?> zlass)
-
checkCast
public BytecodeUtils checkCast(java.lang.Class<?> type)
-
dup
public BytecodeUtils dup()
-
push
public BytecodeUtils push(int index)
-
push
public BytecodeUtils push(java.lang.String value)
-
loadArg
public BytecodeUtils loadArg(int index)
-
coding
public <T> BytecodeUtils coding(java.lang.Class<T> zlass, BytecodeUtils.Asm<T> code)
-
endMethod
public BytecodeUtils endMethod()
-
buildReturnValue
public BytecodeUtils buildReturnValue(java.lang.reflect.Method m)
-
buildArguments
public BytecodeUtils buildArguments(org.objectweb.asm.commons.Method method)
-
end
public BytecodeUtils end()
-
toByteArray
public byte[] toByteArray()
-
findClass
public java.lang.Class<?> findClass(java.lang.String name)
- Overrides:
findClassin classjava.lang.ClassLoader
-
-