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) |
| 限定符和类型 | 方法和说明 |
|---|---|
AMethodMeta |
chooseMethod() |
AMethodMeta |
choosingTheMostSpecificMethod(List<AMethodMeta> entities)
Choosing the Most Specific Method
reference to : The Java™ Language Specification 15.12.2.5 |
AMethodMeta |
firstPhase()
Phase 1 Identify Matching Arity Methods Applicable by Subtyping
reference to : The Java™ Language Specification 15.12.2.2 |
Map<AClass,List<AMethodMeta>> |
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. |
AMethodMeta |
secondPhase()
Phase 2: Identify Matching Arity Methods Applicable by Method Invocation Conversion
reference to : The Java™ Language Specification 15.12.2.3
|
AMethodMeta |
thirdPhase()
Phase 3: Identify Applicable Variable Arity Methods
reference to : The Java™ Language Specification 15.12.2.4
|
protected AClass whereCall
protected AClass directCallClass
protected String name
protected AClass[] argumentTypes
public AMethodMeta chooseMethod()
chooseMethod 在接口中 IMethodChooserpublic Map<AClass,List<AMethodMeta>> identifyPotentiallyApplicableMethods()
DetermineMethodSignaturejsl3 := 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:
identifyPotentiallyApplicableMethods 在接口中 DetermineMethodSignaturepublic AMethodMeta firstPhase()
DetermineMethodSignature
Phase 1 Identify Matching Arity Methods Applicable by Subtyping
firstPhase 在接口中 DetermineMethodSignaturepublic AMethodMeta secondPhase()
DetermineMethodSignaturePhase 2: Identify Matching Arity Methods Applicable by Method Invocation Conversion
reference to : The Java™ Language Specification 15.12.2.3secondPhase 在接口中 DetermineMethodSignaturepublic AMethodMeta thirdPhase()
DetermineMethodSignaturePhase 3: Identify Applicable Variable Arity Methods
reference to : The Java™ Language Specification 15.12.2.4thirdPhase 在接口中 DetermineMethodSignaturepublic AMethodMeta choosingTheMostSpecificMethod(List<AMethodMeta> entities)
DetermineMethodSignature
Choosing the Most Specific Method
choosingTheMostSpecificMethod 在接口中 DetermineMethodSignatureCopyright © 2015. All rights reserved.