Я был бы очень признателен, если бы кто-нибудь мог помочь мне с этой проблемой. Я получаю сообщение об ошибке при запуске этого класса UniqueUsersData.java
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.util.HashSet
at gettingData.UniqueUsersData.main(UniqueUsersData.java:30)
УникальныеПользователиДанные.java:
package gettingData;
import java.io.BufferedInputStream;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.io.Serializable;
import de.umass.lastfm.User;
public class UniqueUsersData {
public static void main(String[] args) throws IOException, ClassNotFoundException{
HashSet<User> userData = null;
String fileName = "users.csv";
ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileName));
try{
while(in != null ){ // keep reading if there are more lines in the file
userData = (HashSet<User>) in.readObject();
}
}catch(IOException e){
e.printStackTrace();
}
String file = "usersInfo.csv";
BufferedWriter out = new BufferedWriter(new FileWriter(file, true));
for(User u: userData){
System.out.println(u.getId() + "," + u.getName() + "\n");
}
out.close();
} // end main method
} // end class
У меня есть другой класс, который получает данные с помощью API last.fm, сохраняет объекты пользователя в массиве, а затем записывает эти объекты в файл (users.csv). Все работает нормально, и я пишу в файл, используя ObjectOutputStream
.
Я читал о том, что класс должен быть Serializable
, но я предполагаю, что de.umass.lastfm.User
его не реализует.
Есть ли что-то, что мне здесь не хватает?
Спасибо за любую помощь!