2018-05-07

import java.lang.reflect.InvocationHandler;

import java.lang.reflect.Method;

import java.lang.reflect.Proxy;

import java.lang.reflect.UndeclaredThrowableException;

import model.proxy.ICoder;


public final class TestProxyGen extends Proxy

  implements ICoder

{

  private static Method m1;

  private static Method m0;

  private static Method m3;

  private static Method m2;


  public TestProxyGen(InvocationHandler paramInvocationHandler)

    throws

  {

    super(paramInvocationHandler);

  }


  public final boolean equals(Object paramObject)

    throws

  {

    try

    {

      return ((Boolean)this.h.invoke(this, m1, new Object[] { paramObject })).booleanValue();

    }

    catch (RuntimeException localRuntimeException)

    {

      throw localRuntimeException;

    }

    catch (Throwable localThrowable)

    {

    }

    throw new UndeclaredThrowableException(localThrowable);

  }


  public final int hashCode()

    throws

  {

    try

    {

      return ((Integer)this.h.invoke(this, m0, null)).intValue();

    }

    catch (RuntimeException localRuntimeException)

    {

      throw localRuntimeException;

    }

    catch (Throwable localThrowable)

    {

    }

    throw new UndeclaredThrowableException(localThrowable);

  }


  public final void implDemands(String paramString)

    throws

  {

    try

    {

      this.h.invoke(this, m3, new Object[] { paramString });

      return;

    }

    catch (RuntimeException localRuntimeException)

    {

      throw localRuntimeException;

    }

    catch (Throwable localThrowable)

    {

    }

    throw new UndeclaredThrowableException(localThrowable);

  }


  public final String toString()

    throws

  {

    try

    {

      return (String)this.h.invoke(this, m2, null);

    }

    catch (RuntimeException localRuntimeException)

    {

      throw localRuntimeException;

    }

    catch (Throwable localThrowable)

    {

    }

    throw new UndeclaredThrowableException(localThrowable);

  }


  static

  {

    try

    {

      m1 = Class.forName("java.lang.Object").getMethod("equals", new Class[] { Class.forName("java.lang.Object") });

      m0 = Class.forName("java.lang.Object").getMethod("hashCode", new Class[0]);

      m3 = Class.forName("model.proxy.ICoder").getMethod("implDemands", new Class[] { Class.forName("java.lang.String") });

      m2 = Class.forName("java.lang.Object").getMethod("toString", new Class[0]);

      return;

    }

    catch (NoSuchMethodException localNoSuchMethodException)

    {

      throw new NoSuchMethodError(localNoSuchMethodException.getMessage());

    }

    catch (ClassNotFoundException localClassNotFoundException)

    {

    }

    throw new NoClassDefFoundError(localClassNotFoundException.getMessage());

  }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,083评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,803评论 18 399
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,851评论 0 10
  • 固定联想词: 数字音标化 1:取音标t和d,都是带棍子的2:取音标n,n有两个腿3:取音标m,m有三个腿4:取音标...
    笑楔信阅读 592评论 1 1
  • 走一步再走一步,路漫漫兮,可缓缓行矣! 自勉
    山外喵阅读 338评论 0 0