Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [JAVA] Problema con le Date

    Applicando il metodo getTimeInMillis() a una data GregorianCalendar in questo modo:

    long milSec = data.getTimeInMillis();

    ottengo questo errore in compilazione:

    getTimeInMillis() has protected access in java.util.Calendar

    Come posso impostare il metodo per evitare l'errore?

  2. #2
    Ho provato queste due righe di codice e funzionano (non ottengo nessun errore in compilazione e nemmeno in esecuzione).
    codice:
    java.util.GregorianCalendar data = new java.util.GregorianCalendar();
    long a = data.getTimeInMillis();
    Se il problema resta, fammi sapere.
    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Il metodo getTimeInMillis() della classe Calendar era dichiarato protected nella JDK 1.3
    Dalla versione 1.4 (credo, io posseggo la 1.4.2_03) esso è pubblico. Probabilmente tu usi ancora un compilatore per JDK 1.3 o inferiore.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Anch'io uso la stessa versione di LeleFT.
    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

  5. #5
    Infatti io uso la JDK 1.3 dove il metodo è dichiarato protected - Secondo voi è possibile risolvere il problema o mi conviene installare la 1.4?

  6. #6
    Non ho mai lavorato con la JDK 1.3.
    Per rispondere al tuo quesito ti dico che la JDK 1.4 è ormai testata e ritestata. Funziona correttamente e fornisce più metodi della versione precedente.
    A questo punto perchè non usare una cosa migliore che ti fornisce compatibilità con il codice che hai già scritto per la versione 1.3?
    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

  7. #7
    Grazie - Hai ragione la JDK 1.4 è la soluzione più rapida per risolvere il mio problema - Sarei però curioso di sapere come riuscire ad utilizzare i medodi "protected" (se fosse possibile) visto che ce ne sono diversi e credo che la JDK 1.4 non ne sia esente!

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Quando un metodo è dichiarato protected in una classe esso può essere utilizzato solo dalle classi che la estendono. L'unico modo, quindi, per poterli utilizzare è estendere la classe che li definisce.

    Per poter, invece, risalire ai millisecondi senza dover aggiornare la tua JDK (cosa, comunque, che ti consiglio anch'io), devi fare un passaggio in più:
    codice:
    GregorianCalendar gc = new GregorianCalendar();
    long millisecondi = gc.getDate().getTime();
    Devi, cioè, passare per un oggetto di tipo Date che è stato, appunto, deprecato dalla JDK 1.4.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Ciao Lele - Grazie della spiegazione sui "metodi protected"
    Cmq il codice corretto per ottenere i millisecondi è questo:
    codice:
    long millisecondi = gc.getTime().getTime();
    P.S. provvederò ad aggiornare la mia JDK

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.