我正在使用 Rascal 通过 M3 模型检测多态类型(具有 > 1 个实现)。在 JHotDraw 6 ( http://www.jhotdraw.org/ ) 中,有一个org::jhotdraw::framework::ViewChangeListener
仅由匿名类实现的接口,但 JHotDraw 的 m3 模型似乎不包含此信息。
import lang::java::jdt::m3::Core;
import lang::java::m3::TypeHierarchy;
jhd6 = createM3FromEclipseProject(|project://jhotdraw60b1|);
vcl = |java+interface:///org/jhotdraw/framework/ViewChangeListener|;
invert(jhd6@implements)[vcl];
返回一个空集。
|java+anonymousClass:///org/jhotdraw/standard/AbstractTool/createViewChangeListener()/$anonymous1|
在 m3 模型中可以找到匿名类,但不识别为实现 ViewChangeListener 接口。
有没有可靠的方法来获取这些信息?