Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2011, 23:44   #1
VaspERR
Новичок
Джуниор
 
Регистрация: 22.12.2011
Сообщений: 2
По умолчанию TreeSet Сериализация возможна???Если да, то что нужно сделать?

package contseria;

import java.util.*;
import java.io.*;
class MyComparator implements Comparator {
public int compare(Object o1,Object o2)
{
return (((NewClass)o1).Get()).compareTo((( NewClass)o2).Get());
}
}
class List implements Serializable {

private TreeSet AL;

public List() {
AL = new TreeSet(new MyComparator());

}

public List(NewClass o) {
AL = new TreeSet( new MyComparator());
AL.add(o);
}

public void AddToList(NewClass o) {
this.AL.add((o));
}
public TreeSet Get(){
return this.AL;
}

void show(int index) {
Iterator i=this.Get().iterator();
while(i.hasNext())
{
((NewClass)i.next()).show();
}
}

}
class NewClass implements Serializable {

private int data;
private String str;

NewClass() {
this.data = 0;
this.str = "nothing";
}

NewClass(int data, String str) {
this.data = data;
this.str = str;
}
public String Get(){
return this.str;
}
public void show(){
System.out.println(this.data);
System.out.println(this.str);

}
}

public class ContSeria {

public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
NewClass ncs=new NewClass(1, "sdf");
List L = new List(ncs);
for (int i = 0; i < 10; i++) {
L.AddToList(new NewClass(i, new Integer(i).toString()));
}
File f = new File("output.txt");
ObjectOutputStream objoutstr = new ObjectOutputStream(new FileOutputStream(f));
objoutstr.writeObject(L);
objoutstr.flush();
objoutstr.close();

File f1 = new File("output.txt");




ObjectInputStream istream = new ObjectInputStream(new FileInputStream(f1));
List newList = (List) istream.readObject();
for(int i=0;i<11;i++)
newList.show(i);







}
}




Exception in thread "main" java.io.NotSerializableException: contseria.MyComparator
at java.io.ObjectOutputStream.writeObj ect0(ObjectOutputStream.java:1164)
at java.io.ObjectOutputStream.writeObj ect(ObjectOutputStream.java:330)
at java.util.TreeSet.writeObject(TreeS et.java:485)
at sun.reflect.NativeMethodAccessorImp l.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImp l.invoke(NativeMethodAccessorImpl.j ava:39)
at sun.reflect.DelegatingMethodAccesso rImpl.invoke(DelegatingMethodAccess orImpl.java:25)
at java.lang.reflect.Method.invoke(Met hod.java:597)
at java.io.ObjectStreamClass.invokeWri teObject(ObjectStreamClass.java:945 )
at java.io.ObjectOutputStream.writeSer ialData(ObjectOutputStream.java:146 9)
at java.io.ObjectOutputStream.writeOrd inaryObject(ObjectOutputStream.java :1400)
at java.io.ObjectOutputStream.writeObj ect0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.defaultW riteFields(ObjectOutputStream.java: 1518)
at java.io.ObjectOutputStream.writeSer ialData(ObjectOutputStream.java:148 3)
at java.io.ObjectOutputStream.writeOrd inaryObject(ObjectOutputStream.java :1400)
at java.io.ObjectOutputStream.writeObj ect0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.writeObj ect(ObjectOutputStream.java:330)
at contseria.ContSeria.main(ContSeria. java:75)
Java Result: 1
VaspERR вне форума Ответить с цитированием
Старый 23.12.2011, 09:50   #2
sashonk
Форумчанин
 
Регистрация: 26.10.2009
Сообщений: 170
По умолчанию

сделайте MyComparable сериализуемым
sashonk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что нужно сделать с <td> что бы между картинками другого <table> не было разделения? alex555 HTML и CSS 22 24.04.2012 16:43
Что сделать если не подключается библиотека <ioctream.h> pr1me222 Общие вопросы C/C++ 5 13.05.2011 10:14
Что нужно сделать? FarSeer Помощь студентам 0 07.12.2010 18:37
Что нужно знать (сделать), что бы прога запускалась в Виндос 7 и Виста marina15056 Помощь студентам 19 24.08.2010 11:29
Возможна ли сортировка вычисляемых полей в DBGrid, если используется ADOTable ArtInt БД в Delphi 16 13.04.2009 03:13