Toon posts:

[java]serialVersionUID genereren

Pagina: 1
Acties:

Verwijderd

Topicstarter
De meeste van jullie zullen vast wel weten dat sinds java 1.5 "private static final long serialVersionUID" gedefinieerd moet worden, althans eclipse verdomd anders het zaakje te compileren. Nu wil ik dus graag weten hoe ik de moet genereren aangezien elke eigenschap van de klasse moet worden meegenomen. Het zou mooi zijn als hier een eclipse plugin voor bestond.

Wie weet hier meer vanaf?

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Met het programma "serialver" geleverd bij de SDK?

http://www.javapractices.com/Topic45.cjp

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Topicstarter
Nick_S schreef op dinsdag 14 december 2004 @ 13:02:
Met het programma "serialver" geleverd bij de SDK?
Nee das alleen om te bekijken, tenminste, ik kan er niet mee genereren :)

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Ok, ik heb het even snel getest.

Nieuwe class file gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
import java.io.Serializable;

public class BladieBla implements Serializable {

    private String bladiebla;

    public BladieBla() {
        bladiebla = "bla";
    }
}


Gecompileerd:

code:
1
javac BladieBla.java


En serialver gedraaid:
code:
1
2
C:\>serialver BladieBla
BladieBla:    static final long serialVersionUID = 4224399517928124090L;


Ziet er toch uit als of het genereert. :9 Ik geef toe, ik had het ook nog nooit geprobeerd en had alleen even via Google gezocht, maar nu heb ik het ook uitgeprobeert.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Topicstarter
Nee het gaat erom als je hem zelf defnieert, ik geloof nu dat de hashcode gebruikt wordt. Die serialver app geeft domweg weer, maar genereerd niet.

Jij hebt nu dus <=1.4 code gebruikt, ik gebruik dus 1.5 (5.0) code.

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Ow sorry, had inderdaad even gemist dat het om 1.5 ging.

[Edit]
Kon het toch niet hebben, dat ik het mis had. Heb dus nog even verder gezocht en gevonden. Een Eclipse plugin voor het genereren van je serialVersionUid

http://eclipse-plugins.2y...plugin_details.jsp?id=257

[ Voor 69% gewijzigd door Nick_S op 14-12-2004 15:27 ]

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • nxt
  • Registratie: November 2001
  • Laatst online: 04-02 09:36

nxt

Verwijderd schreef op dinsdag 14 december 2004 @ 14:52:
... ik geloof nu dat de hashcode gebruikt wordt. Die serialver app geeft domweg weer, maar genereerd niet.
Dat lijkt me niet waarschijnlijk, tenzij je erin slaagt een integer de waarde 4224399517928124090L te geven.

edit:
het is trouwens voor zover ik weet in JDK 1.5 net als in de voorgangers nog steeds optioneel om een serialVersionUID veld te declareren.

[ Voor 19% gewijzigd door nxt op 15-12-2004 01:29 ]


Verwijderd

Verwijderd schreef op dinsdag 14 december 2004 @ 12:18:
De meeste van jullie zullen vast wel weten dat sinds java 1.5 "private static final long serialVersionUID" gedefinieerd moet worden, althans eclipse verdomd anders het zaakje te compileren. Nu wil ik dus graag weten hoe ik de moet genereren aangezien elke eigenschap van de klasse moet worden meegenomen. Het zou mooi zijn als hier een eclipse plugin voor bestond.
1. Je kan het in je eclipse compiler settings aanpassen of eclipse hierover struikelt of niet. (Window -> Preferences -> Java -> Compiler)
2. Ik ga ervanuit dat je als je JDK1.5 gebruikt, je ook Eclipse 3.1M[1-3] gebruikt. Daarin kan je gewoon even op het rood-onderstreepte gedeelte gaan staan en CTRL-1 drukken. Et voila, Eclipse vraagt of er een dummy moet komen of dat het gegenereerd moet worden.
3. Het is nog altijd niet verplicht, maar wel good-practice (Wel opletten als je geserialiseerde objecten gaat persisteren, en daarna een nieuwe versie maakt) ;)

Verwijderd

Topicstarter
Okee ik kan het dus onderdrukken, maar er moet toch ook een manier zijn om het te genereren?

Verwijderd

Verwijderd schreef op donderdag 16 december 2004 @ 14:54:
Okee ik kan het dus onderdrukken, maar er moet toch ook een manier zijn om het te genereren?
Zie optie 2 in mijn post. Op het onderstreepte stuk staan en CTRL-1 drukken. Eclipse vraagt dan:
- Add default serial version ID
- Add generated serial version ID

En dan kan je gewoon kiezen voor het generated.

Ook werkt: Kiezen voor "Quick Fix" in je problems lijst. Dan krijg je dezelfde vraag (default of generated).

Verwijderd

Topicstarter
Oh sorry, ik had gelezen

"Et voila, Eclipse vraagt of er een dummy moet komen en dat het gegenereerd moet worden"

Nou merci!
Pagina: 1