[英]Printing variable values in Java
我有一个对象,它是一个名为MessaMessage的新MimeMessage,我想知道它传递给我的传出邮件服务器的内容。 但是我不知道如何在Java中获取这样的变量。 这是一些代码:
private String sendConfirmationEmail (String to, String from, String subject, String body, boolean CCSender) {
try
{
// String smtpHost = Properties.smtp;
String smtpHost = Properties.smtp;
String fromAddress = from;
String toAddress = to;
Properties properties = System.getProperties();
properties.put("mail.smtp.host", smtpHost);
Session session = Session.getInstance(properties, null);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(fromAddress));
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(toAddress));
if (CCSender) {
message.setRecipient(Message.RecipientType.CC,
new InternetAddress(from));
}
message.setSubject(subject);
message.setText(body);
System.out.println(message); <=== I want this to work!
message.saveChanges();
Transport.send(message);
return "1:success";
}
catch(Exception e)
{
return "0:failure "+e.toString();
}
}
任何帮助将非常感激。
谢谢。
如果它是您可以控制的类,则覆盖它的toString()方法
如果您无法控制它,则必须编写类似
String valueOf(Message message) {
StringBuilder sb = new StringBuilder();
sb.append(message.someValue());
sb.append(message.someOtherValue());
return sb.toString();
}
并在调试消息中使用valueOf
对于MimeMessage,我依靠它的内容具有toString实现
String valueOf(Message message) {
return message.getContent().toString();
}
对于MimeMessage
,可以调用message.writeTo(System.out);
MimeMessage
。 您可能希望在调用message.saveChanges()
之后执行此操作以确保一致性。
您可以创建一个装饰器类来实现基本接口,并记录/打印包装类的toString()
返回的所有内容(或基本接口具有的任何其他方法)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.