2011-08-07 10 views
21

Czy Calendar.getInstance() działa jak zwykły singleton w tym sensie, że gdybym zadzwonił getInstance gdzie indziej i ustawić dzień, miesiąc, itp., A następnie, jeśli zadzwonię Calendar.getInstance() gdzie indziej te pola będzie ustawiony na wszystko, co wcześniej ustawiłem? Innymi słowy, jeśli chcę, aby Calendar.getInstance() zwrócił obiekt z bieżącym czasem i dniem, itp., Co muszę zrobić? Wystarczy zadzwonić pod numer clear()? Czy to resetuje instancję do bieżącego czasu, itp?Calendar.getInstance() ... podstawowe pytanie

Moje przeprosiny, jeśli to głupie pytanie.

+7

Wypróbuj go i zobacz, co się stanie. Wszystko, co musisz zrobić, to uzyskać instancję i wyświetlić obiekt. Wtedy możesz spać przez kilka sekund. Następnie otrzymasz instancję ponownie i wyświetlisz wartość i zobaczysz, czy są one takie same lub różne. – camickr

Odpowiedz

43

Nie, Calendar.getInstance() nie zwraca pojedynczej instancji. Celem użycia getInstance() jest uwzględnienie domyślnego ustawienia narodowego i strefy czasowej przy podejmowaniu decyzji, która implementacja kalendarza ma zostać zwrócona i jak ją zainicjować.

Nie musisz robić nic, aby uzyskać drugi kalendarz z aktualnym czasem, wystarczy ponownie zadzwonić pod numer Calendar.getInstance().

+24

@camickr Nauka korzystania z dokumentacji API jest cenną umiejętnością, ale nie sądzę, że aron zasługuje na awersję za pomaganie komuś ... – KyleM

+0

To nie pomaga plakatowi nauczyć się, jak rozwiązać problem. Ludzie muszą nauczyć się czytać API. – camickr

+0

Chciałabym, żeby więcej osób głosowało. Zrobilibyśmy plakatowi przysługę, ucząc go, jak polegać na sobie, aby zrobić podstawowe rozwiązanie problemu PRZED wysłaniem pytania na forach. I nie martw się, że i tak będzie mnóstwo ludzi, którzy i tak dadzą ci sympatię. – camickr

11

Generalnie można użyć dokumentacji API (patrz źródło) w przypadku takich pytań. Z dokumentacji API: metoda getInstance

Kalendarza zwraca obiekt Kalendarz którego kalendarz pola zostały zainicjowane z aktualną datą i godziną:

 Calendar rightNow = Calendar.getInstance(); 

Źródło: http://download.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html

+7

@camickr: KyleM dał doskonały przykład pokazujący przydatność dokumentacji API. Czy nie uważasz, że jest to pomocne w nauczaniu, dlaczego powinieneś zapoznać się z dokumentacją API? – Jeremy

+5

@camickr Kogo to obchodzi? Jesteś policją StackOverflow, mam rację? OP zadał pytanie i byłem na tyle miły, aby dać odpowiedź. Być może OP będzie korzystał z dokumentu API następnym razem, gdy zobaczy, że to tam otrzymałem moje informacje. – KyleM

+1

Nie, ponieważ teraz plakat faktycznie nie musi czytać interfejsu API. Jeśli plakat odczyta API, znajdzie to dokładne stwierdzenie, więc nie ma potrzeby, aby go tutaj ponownie publikować. Ponadto, gdy czytają API, zauważają wiele innych pomocnych metod, z których mogą korzystać w przyszłości. – camickr