zoukankan      html  css  js  c++  java
  • Groovy脚本和Groovy类反编译文件

    Groovy类

    package preload_groovy
    
    class GroovyKlass {
        static void main(String[] args) {
            println "Hello"
        }
    }
    
    package preload_groovy;
    
    import org.codehaus.groovy.reflection.*;
    import groovy.lang.*;
    import java.lang.ref.*;
    import org.codehaus.groovy.runtime.*;
    import org.codehaus.groovy.runtime.callsite.*;
    
    public class GroovyKlass implements GroovyObject
    {
        private static /* synthetic */ ClassInfo $staticClassInfo;
        private transient /* synthetic */ MetaClass metaClass;
        private static /* synthetic */ SoftReference $callSiteArray;
        
        public GroovyKlass() {
            $getCallSiteArray();
            this.metaClass = this.$getStaticMetaClass();
        }
        
        public static void main(final String... args) {
            $getCallSiteArray()[0].callStatic((Class)GroovyKlass.class, (Object)"Hello");
        }
        
        protected /* synthetic */ MetaClass $getStaticMetaClass() {
            if (this.getClass() != GroovyKlass.class) {
                return ScriptBytecodeAdapter.initMetaClass((Object)this);
            }
            ClassInfo $staticClassInfo = GroovyKlass.$staticClassInfo;
            if ($staticClassInfo == null) {
                $staticClassInfo = (GroovyKlass.$staticClassInfo = ClassInfo.getClassInfo((Class)this.getClass()));
            }
            return $staticClassInfo.getMetaClass();
        }
        
        private static /* synthetic */ CallSiteArray $createCallSiteArray() {
            final String[] array = { null };
            $createCallSiteArray_1(array);
            return new CallSiteArray((Class)GroovyKlass.class, array);
        }
        
        private static /* synthetic */ CallSite[] $getCallSiteArray() {
            CallSiteArray $createCallSiteArray;
            if (GroovyKlass.$callSiteArray == null || ($createCallSiteArray = GroovyKlass.$callSiteArray.get()) == null) {
                $createCallSiteArray = $createCallSiteArray();
                GroovyKlass.$callSiteArray = new SoftReference($createCallSiteArray);
            }
            return $createCallSiteArray.array;
        }
    }
    
    

    Groovy脚本

    package preload_groovy
    
    println 'Hello'
    
    
    package preload_groovy;
    
    import org.codehaus.groovy.reflection.*;
    import java.lang.ref.*;
    import groovy.lang.*;
    import org.codehaus.groovy.runtime.*;
    import org.codehaus.groovy.runtime.callsite.*;
    
    public class GroovyScript extends Script
    {
        private static /* synthetic */ SoftReference $callSiteArray;
        
        public GroovyScript() {
            $getCallSiteArray();
        }
        
        public GroovyScript(final Binding context) {
            $getCallSiteArray();
            super(context);
        }
        
        public static void main(final String... args) {
            $getCallSiteArray()[0].call((Object)InvokerHelper.class, (Object)GroovyScript.class, (Object)args);
        }
        
        public Object run() {
            return $getCallSiteArray()[1].callCurrent((GroovyObject)this, (Object)"Hello");
        }
        
        private static /* synthetic */ CallSiteArray $createCallSiteArray() {
            final String[] array = new String[2];
            $createCallSiteArray_1(array);
            return new CallSiteArray((Class)GroovyScript.class, array);
        }
        
        private static /* synthetic */ CallSite[] $getCallSiteArray() {
            CallSiteArray $createCallSiteArray;
            if (GroovyScript.$callSiteArray == null || ($createCallSiteArray = GroovyScript.$callSiteArray.get()) == null) {
                $createCallSiteArray = $createCallSiteArray();
                GroovyScript.$callSiteArray = new SoftReference($createCallSiteArray);
            }
            return $createCallSiteArray.array;
        }
    }
    
    
  • 相关阅读:
    数据库(SQL Server)管理数据库表~新奇之处
    疯狂C#~伴随着我的库存管理¥
    书中的银行,我们一起奋斗的C#,只因乐在其中~
    MyBatis的经典案例
    Spring MVC的配置文件(XML)的几个经典案列
    Spring MVC注解的一些案列
    WebService的一些案例
    AOP面向切面编程的四种实现
    Struts 2的OGNL的根对象
    Struts 2的拦截器(Interceptor)总结
  • 原文地址:https://www.cnblogs.com/jsersudo/p/14214761.html
Copyright © 2011-2022 走看看