|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2011, 23:44 | #1 |
Новичок
Джуниор
Регистрация: 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 |
23.12.2011, 09:50 | #2 |
Форумчанин
Регистрация: 26.10.2009
Сообщений: 170
|
сделайте MyComparable сериализуемым
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
что нужно сделать с <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 |