cn.wensiqun.asmsupport.utils.chooser
类 MethodChooser

java.lang.Object
  继承者 cn.wensiqun.asmsupport.utils.chooser.MethodChooser
所有已实现的接口:
DetermineMethodSignature, IMethodChooser

public class MethodChooser
extends Object
implements IMethodChooser, DetermineMethodSignature


字段摘要
protected  AClass[] argumentTypes
           
protected  AClass directCallClass
          what class call
protected  String name
          method name
protected  AClass whereCall
          where is this method invoke operator
 
构造方法摘要
MethodChooser(AClass whereCall, AClass directCallClass, String name, AClass[] argumentTypes)
           
 
方法摘要
 MethodEntity chooseMethod()
           
 MethodEntity choosingTheMostSpecificMethod(List<MethodEntity> entities)
           Choosing the Most Specific Method
reference to : The Java™ Language Specification 15.12.2.5
 MethodEntity firstPhase()
           Phase 1 Identify Matching Arity Methods Applicable by Subtyping
reference to : The Java™ Language Specification 15.12.2.2
 Map<AClass,List<MethodEntity>> identifyPotentiallyApplicableMethods()
          jsl3 := The Java™ Language Specification Third Edition
A member method is potentially applicable to a method invocation if and only if all of the following are true: The name of the member is identical to the name of the method in the method invocation.
 MethodEntity secondPhase()
           Phase 2: Identify Matching Arity Methods Applicable by Method Invocation Conversion reference to : The Java™ Language Specification 15.12.2.3
 MethodEntity thirdPhase()
           Phase 3: Identify Applicable Variable Arity Methods reference to : The Java™ Language Specification 15.12.2.4
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

whereCall

protected AClass whereCall
where is this method invoke operator


directCallClass

protected AClass directCallClass
what class call


name

protected String name
method name


argumentTypes

protected AClass[] argumentTypes
构造方法详细信息

MethodChooser

public MethodChooser(AClass whereCall,
                     AClass directCallClass,
                     String name,
                     AClass[] argumentTypes)
方法详细信息

chooseMethod

public MethodEntity chooseMethod()
指定者:
接口 IMethodChooser 中的 chooseMethod

identifyPotentiallyApplicableMethods

public Map<AClass,List<MethodEntity>> identifyPotentiallyApplicableMethods()
从接口 DetermineMethodSignature 复制的描述

jsl3 := The Java™ Language Specification Third Edition
A member method is potentially applicable to a method invocation if and only if all of the following are true:

  1. The name of the member is identical to the name of the method in the method invocation.
  2. The member is accessible (jsl3 6.6) to the class or interface in which the method invocation appears.
  3. The arity of the member is lesser or equal to the arity of the method invocation.
  4. If the member is a variable arity method with arity n, the arity of the method invocation is greater or equal to n-1.
  5. If the member is a fixed arity method with arity n, the arity of the method invocation is equal to n.
  6. If the method invocation includes explicit type parameters, and the member is a generic method, then the number of actual type parameters is equal to the number of formal type parameters.

指定者:
接口 DetermineMethodSignature 中的 identifyPotentiallyApplicableMethods
返回:

firstPhase

public MethodEntity firstPhase()
从接口 DetermineMethodSignature 复制的描述

Phase 1 Identify Matching Arity Methods Applicable by Subtyping

reference to : The Java™ Language Specification 15.12.2.2

指定者:
接口 DetermineMethodSignature 中的 firstPhase
返回:

secondPhase

public MethodEntity secondPhase()
从接口 DetermineMethodSignature 复制的描述

Phase 2: Identify Matching Arity Methods Applicable by Method Invocation Conversion

reference to : The Java™ Language Specification 15.12.2.3

指定者:
接口 DetermineMethodSignature 中的 secondPhase
返回:

thirdPhase

public MethodEntity thirdPhase()
从接口 DetermineMethodSignature 复制的描述

Phase 3: Identify Applicable Variable Arity Methods

reference to : The Java™ Language Specification 15.12.2.4

指定者:
接口 DetermineMethodSignature 中的 thirdPhase
返回:

choosingTheMostSpecificMethod

public MethodEntity choosingTheMostSpecificMethod(List<MethodEntity> entities)
从接口 DetermineMethodSignature 复制的描述

Choosing the Most Specific Method

reference to : The Java™ Language Specification 15.12.2.5

指定者:
接口 DetermineMethodSignature 中的 choosingTheMostSpecificMethod
返回:


Copyright © 2013. All Rights Reserved.