Задача: "The Java Programming Language" Ken Arnold, James Gosling, David Holmes листинги, код, примеры из книги, исходники
Исходник: Глава 15, Ввод-Вывод (Chapter 15. Input-Output), BetterName class, язык: java [code #185, hits: 6338]
автор: - [добавлен: 15.09.2006]
  1. import java.io.ObjectOutputStream;
  2. import java.io.IOException;
  3. import java.io.ObjectInputStream;
  4.  
  5. /**
  6. * Created by IntelliJ IDEA.
  7. * User: me
  8. * Date: 15.09.2006
  9. * Time: 17:09:07
  10. * To change this template use File | Settings | File Templates.
  11. */
  12. public class BetterName implements java.io.Serializable {
  13. private String name;
  14. private long id;
  15. private transient int hash;
  16.  
  17. private static long nextID = 0;
  18.  
  19. public BetterName(String name) {
  20. this.name = name;
  21. synchronized (BetterName.class) {
  22. id = nextID++;
  23. }
  24. hash = name.hashCode();
  25. }
  26.  
  27. private void writeObject(ObjectOutputStream out)
  28. throws IOException {
  29. out.writeUTF(name);
  30. out.writeLong(id);
  31.  
  32. // Alternative:
  33. //out.defaultWriteObject();
  34. }
  35.  
  36. private void readObject(ObjectInputStream in)
  37. {
  38. name = in.readUTF();
  39. id = in.readLong();
  40.  
  41. // Alternative:
  42. //in.defaultReadObject();
  43.  
  44. hash = name.hashCode();
  45. }
  46.  
  47. public int hashCode() {
  48. return hash;
  49. }
  50. }
Тестировалось на: java 1.5.0_04

+добавить реализацию