码迷,mamicode.com
首页 > 其他好文 > 详细

SimpleVisitorMemberType类的visitClassType解读

时间:2018-08-19 15:45:17      阅读:163      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!