发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

问banq大哥,用aspectj如何一次性向多个类添加同一方法

    
2007-04-26 01:28
赞助商链接

用asjectj给类com.unmi.User添加一个方法foo()可以定义这样一个方面

public aspect ExtendClassRecipt
{
public void com.unmi.User.foo()
{
System.out.println("introduce a new method foo to class User");
}
}

上面的声明方式只能是一次给一个类加一个方法,比如说有这样一个需求,我把所用的VO都放在一个包里 com.unmi.vo,我向用aspectj一次性给包com.unmi.vo中的类全加上toString()方法,便于调试,aspectj好像扩展类加方法时不能用通配符的

所以没办法写成:

public aspect ExtendClassRecipt
{
public String com.unmi.vo.*.toString() //希望能一次给vo包中所有类都加上toString方法
{
return ReflectionToStringBuilder.toString(this);
}
}

如果vo包中有许多类,一个个类的为他们添加完全相同实现的toString方法实在是太码麻烦了,能批量的进行呢?
banq应该用过aspectj,希望能得到您和大家宝贵的回答。

2007-04-26 08:22

aspectj只是了解,这个问题我也想知道,如果你有答案别忘记贴这里,谢谢了.

按照设计原理来看,方法必然属于某个类,因此,缺省设计考虑都是先类后方法.

2007-04-26 10:54

谢谢banq的关注与回答,我觉得批量给多个类添加同一方法还是很有这个需求了,如果aspectj考虑过这种aspectj有没有这种实现方式。

aspectj     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系反馈 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com