标签:extends extend .com img 技术分享 family null classType orm
举个例子,如下:
class CA<T>{
public T getVal(){
return null;
}
}
interface IA{}
interface IB{}
public class Test10<T extends CA<? extends Number>&IA&IB>{
public void t(T t){
Number b = t.getVal();
}
}
当分析t.getVal()表达式时,调用visitClassType(ClassType t,Symbol sym)方法,sym参数为MethodSymbol(getVal),而t参数如下截图。
当调用types.asOuterSuper(t,sym.owner)方法时,sym.owner为com.test19.CA,返回的base类型如下截图。
也就是compound type的supertype_field属性。
那么最终调用getVal()方法后返回的类型为方法类型,如下截图。
SimpleVisitorMemberType类的visitClassType解读
标签:extends extend .com img 技术分享 family null classType orm
原文地址:https://www.cnblogs.com/extjs4/p/9501224.html