• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Serializacja problem z przypisaniem obiektu

Cloud VPS
0 głosów
179 wizyt
pytanie zadane 30 maja 2017 w Java przez ewazdomu Początkujący (320 p.)

Witam, stworzyłem mały programik tworzący bazę danych i chciałem wykorzystać Serializację do przechowywania tych baz. Mam problem aby ten wczytany obiekt przypisać do obecnego, w programie głównym wywołuję metodę menu(), która jest całkiem spora i po wpisaniu 'Load' przez uzytkownika, musimy podać nazwę bazy danych z dysku. (którą wcześniej zapisałem, właśnie przy użyciu serializacji) . I problem polega na tym aby w metodzie menu z klasy Database zmienić ten obiekt db na ten wczytany i nie mam pojęcia jak to zrobić wewnątrz klasy Database, czy to jest możliwe? Jak to mogę zrobić?

main:

Database db = new Database();	
db.menu();

Database:
 

	case "LOAD":
				try {
					Scanner input2 = new Scanner(System.in);
	                name = input2.nextLine();
	                Database db = new Database(name);
	                db = db.loadDatabase(name);
	       
	                
	          
	            } catch (IOException e) {
	                System.out.println("Try again or create NEW database\n");
	            }
				break;
public Database loadDatabase(String name) throws IOException {
	        Database database = null;
	        FileInputStream file = new FileInputStream(name + ".db");
	        ObjectInputStream output = new ObjectInputStream(file);
	        try {
	            database = (Database) output.readObject();
	        } catch (ClassNotFoundException e) {
	            System.out.println("Error while loading database from file.");
	        }
	        return database;
	 }

 

1 odpowiedź

+1 głos
odpowiedź 30 maja 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Z tego co rozumiem to chcesz aby obiekt zmienił sam siebie na inny. Możesz zrobić to tak aby menu zwracało Ci referencja na obiekt typu Database. Ale uważam to za zły sposób.

Aby zrobić to dobrze, powinnieneś rodzielić database na conajmniej dwie klasy. Tę która steruje przepływem komunikacji i tę która trzyma faktyczne dane.

Podobne pytania

0 głosów
1 odpowiedź 386 wizyt
pytanie zadane 30 grudnia 2018 w Java przez Ditrix Mądrala (5,650 p.)
0 głosów
2 odpowiedzi 1,022 wizyt
pytanie zadane 25 grudnia 2015 w Java przez pulpet112 Użytkownik (760 p.)
0 głosów
2 odpowiedzi 194 wizyt
pytanie zadane 25 maja 2024 w C# przez lukas1231233 Nowicjusz (240 p.)

93,454 zapytań

142,449 odpowiedzi

322,718 komentarzy

62,833 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...