繁体   English   中英

重写Java内部方法

[英]Overriding java internals methods

我有一个说TestEmail的类,它具有sendEmail()方法

现在, sendEmail方法调用一个apache commons方法,该方法从javax.mail包内部调用方法。 我想重写内部方法之一。 我在下面提供代码流:

TestEmail.sendEmail()->
commons.Email.send()->commons.Email.sendMIMEMessage()->
javax.mail.Transport.send()->javax.mail.Transport(){saveChanges()}-> 
javax.mail.MimeMessage.updateHeaders()->updateMessageID()

我想覆盖updateMessageID方法。 在我的TestEmail类中。 可能吗? 怎么样?

我认为可以通过扩展三个类来实现:commons.Email,javax.mail.Transport和javax.mail.MimeMessage; 并覆盖它们各自的方法以使用updateMessageID()的新行为。

看起来您只是覆盖了正在使用的Email子类中的Email.createMimeMessage(Session)。 然后让createMimeMessage返回javax.mail.MimeMessage的子类,该子类将覆盖updateMessageID以执行您想要的操作。 如果只需要删除用户标识,那么还有其他方法可以做到这一点。 请参阅: 通过配置覆盖Message-ID了解详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM