Jython má, mimo mnoha jiných skvělých vlastností, také interaktivní interpreter. Toho se dá celkem pěkně využít, když si chcete nějakou Javovskou třídu vyzkoušet a nechce se vám psát public class TestClass {
…
Já jsem např. využil tuto interaktivitu při hledání vhodného formátu datumu. Nejprve jsem provedl importy příslušných tříd:
tom@tomh:~> jython Jython 2.1 on java1.4.2 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> from java.text import SimpleDateFormat >>> from java.util import Locale
Pak jsem se podíval na to, jaké metody a konstanty třída obsahuje
>>> dir(Locale) ['CANADA', 'CANADA_FRENCH', 'CHINA', 'CHINESE', 'ENGLISH', 'FRANCE', 'FRENCH', 'GERMAN', 'GERMANY', 'ISO3Country', 'ISO3Language', 'ITALIAN', 'ITALY', 'JAPAN', 'JAPANESE', 'KOREA', 'KOREAN', 'PRC', 'SIMPLIFIED_CHINESE', 'TAIWAN', 'TRADITIONAL_CHINESE', 'UK', 'US', 'clone', 'country', 'displayCountry', 'displayLanguage', 'displayName', 'displayVariant', 'getAvailableLocales', 'getCountry', 'getDefault', 'getDisplayCountry', 'getDisplayLanguage', 'getDisplayName', 'getDisplayVariant', 'getISO3Country', 'getISO3Language', 'getISOCountries', 'getISOLanguages', 'getLanguage', 'getVariant', 'language', 'setDefault', 'variant'] >>> dir (SimpleDateFormat) ['2DigitYearStart', 'applyLocalizedPattern', 'applyPattern', 'dateFormatSymbols', 'format', 'get2DigitYearStart', 'getDateFormatSymbols', 'parse', 'set2DigitYearStart', 'setDateFormatSymbols', 'toLocalizedPattern', 'toPattern']
Zjistil jsem že SimpleDateFormat
není přesně to, co potřebuju načetl jsem si tedy ještě DateFormat
…
>>> from java.text import DateFormat >>> dir (DateFormat) ['AM_PM_FIELD', 'DATE_FIELD', 'DAY_OF_WEEK_FIELD', 'DAY_OF_WEEK_IN_MONTH_FIELD', 'DAY_OF_YEAR_FIELD', 'DEFAULT', 'ERA_FIELD', 'FULL', 'HOUR0_FIELD', 'HOUR1_FIELD', 'HOUR_OF_DAY0_FIELD', 'HOUR_OF_DAY1_FIELD', 'LONG', 'MEDIUM', 'MILLISECOND_FIELD', 'MINUTE_FIELD', 'MONTH_FIELD', 'SECOND_FIELD', 'SHORT', 'TIMEZONE_FIELD', 'WEEK_OF_MONTH_FIELD', 'WEEK_OF_YEAR_FIELD', 'YEAR_FIELD', 'calendar', 'format', 'getAvailableLocales', 'getCalendar', 'getDateInstance', 'getDateTimeInstance', 'getInstance', 'getNumberFormat', 'getTimeInstance', 'getTimeZone', 'isLenient', 'lenient', 'numberFormat', 'parse', 'parseObject', 'setCalendar', 'setLenient', 'setNumberFormat', 'setTimeZone', 'timeZone']
Vytvořil jsem instanci DateFormat
>>> df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.US)
A už to můžu zkoušet…
>>> df.format(Date()) '12/1/04' >>> df = DateFormat.getDateInstance(DateFormat.LONG, Locale.GERMANY) >>> df.format(Date()) '1. Dezember 2004' >>>
Osobně se mi tento postup líbí, protože není třeba vytvářet nějakou třídu, kompilovat, pouštět, znova kompilovat znova pouštět… Prostě si jen interaktivně hrajete…
Eclipse IDE ma tohle v sobe jako scrapbook page.