2016-12-24 5 views
-1

LocalDateTime est résumé classe. Je ne peux pas écrire:Pourquoi LocalDateTime peut-il renvoyer l'instance?

LocalDateTime value = new LocalDateTime(); //error 

Si je veux obtenir son exemple, je dois écrire:

LocalDateTime value = LocalDateTime.now(); //not error 

J'ai une question, Pourquoi peut-LocalDateTime retourner l'instance? C'est un cours abstrait.

J'ai vu la vue d'ensemble, mais je ne pouvais pas trouver ...

+2

Pour mieux comprendre cela, en savoir plus sur [méthodes d'usine] (https://en.wikipedia.org/wiki/Factory_method_pattern) utilisé au lieu de 'new', et sur [objets immuables] (https: //en.wikipedia.org/wiki/Immutable_object). –

Répondre

5

LocalDateTime est pas une classe abstraite.

public final class LocalDateTime 
    implements Temporal, TemporalAdjuster, ChronoLocalDateTime<LocalDate>, Serializable { 

Il a des constructeurs privés, donc l'instanciation directe n'est pas possible. Des méthodes d'usine telles que now(), now(ZoneId) etc. sont utilisées pour créer des instances.

0

LocalDateTime est un objet date-heure immuable qui représente une date-heure.

Cette classe ne stocke pas ou ne représente pas un fuseau horaire. Au lieu de cela, c'est une description de la date. Il ne peut pas représenter un instant sur la ligne de temps sans informations supplémentaires telles qu'un décalage ou un fuseau horaire.

Par conséquent, il a des méthodes statiques, par ex.

LocalDateTime desc = LocalDateTime.now();