无法编译的源代码 - 不兼容的类型:javax.mail.Message []无法转换为javax.mail.Message [英] Uncompilable source code - incompatible types: javax.mail.Message[] cannot be converted to javax.mail.Message
本文介绍了无法编译的源代码 - 不兼容的类型:javax.mail.Message []无法转换为javax.mail.Message的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.MimeMessage.RecipientType;
public class InboxReaderIMAPLast10 {
public static void main(String argv[]) {
final int MAX_MESSAGES=10;
String user = null;
String password = null;
for (int optind = 0; optind < argv.length; optind++) {
if (argv[optind].equals("-U")) {
user = argv[++optind];
} else if (argv[optind].equals("-P")) {
password = argv[++optind];
}
}
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
try {
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imaps");
store.connect("imap.gmail.com", "cloudservicereport@gmail.com","ccooooll");
System.out.println(store);
Folder inbox = store.getFolder("Inbox");
inbox.open(Folder.READ_ONLY);
System.out.println("Total messages = " + inbox.getMessageCount());
System.out.println("New messages = " + inbox.getNewMessageCount());
System.out.println("unread messages = " + inbox.getUnreadMessageCount());
System.out.println("deleted messages = " + inbox.getDeletedMessageCount());
// Get the last 10 messages
int end = inbox.getMessageCount();
int start = end - MAX_MESSAGES + 1;
Message messages[] = inbox.getMessages(start, end);
// Reverse the ordering so that the latest comes out first
Message messageReverse[] = reverseMessageOrder(messages);
// Print the messages out
System.out.println("message size = " + messages.length + "\n");
int i =0;
for (Message message : messageReverse) {
i++;
dumpMessage(i,message);
}
} catch (NoSuchProviderException e) {
e.printStackTrace();
System.exit(1);
} catch (MessagingException e) {
e.printStackTrace();
System.exit(2);
}
}
/*
* reverse the order of the messages
*/
private static Message[] reverseMessageOrder(Message[] messages) {
Message revMessages[]= new Message[messages.length];
int i=messages.length-1;
for (int j=0;j<messages.length;j++,i--)> revMessages[j] = messages; //that above mentioned error occurs here in netbeans ide
}
return revMessages;
}
private static void dumpMessage(int i, Message message) throws MessagingException {
System.out.println(i + " Message envelope");
System.out.println("------------------");
// FROM
for (Address address:message.getFrom()) {
System.out.println("FROM: " + address.toString());
}
// TO
for (Address address:message.getRecipients(RecipientType.TO)) {
System.out.println("To: " + address.toString());
}
// SUBJECT
System.out.println("Subject: " + message.getSubject() + "\n");
}
}
推荐答案
revMessages是一个数组。
消息是一个数组。
那么,为什么要
revMessages is an array.
messages is an array.
So, why would
revMessages[j] = messages
工作?尝试:
work? Try:
revMessages[j] = messages[i]
相反......
这篇关于无法编译的源代码 - 不兼容的类型:javax.mail.Message []无法转换为javax.mail.Message的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文