2015-03-11 2 views
0

Для построения имени файла Я построения имя как нижеуказанным способомМогу ли я использовать динамическую переменную (например, время), чтобы построить статическую конечную переменную (константа)

public static final String JSON_LOG_FILE_NAME = "JSON" 
    +getUserName() + System.currentTimeMillis() 
    + ".txt"; 

это работает до вчерашнего дня, и теперь он дает exceptioninintializationerror. И мое сомнение может использовать динамические значения, такие как время и данные устройства Android, как часть статической конечной переменной.

ответ

2

Это не имеет никакого смысла использовать окончательного, когда вы хотите, чтобы быть изменены в зависимости от времени.

Вы можете создать конечную переменную типа «JSON», и вы можете использовать конкатенацию для имени файла.

ДЛЯ ВАШЕГО ПРИМЕРА: приведенная выше логика действительна i.e Имя файла изменяется только тогда, когда класс загружен, и не каждый раз, когда вы используете эту переменную. Значение является постоянным, и вы никогда не найдете значение динамического изменения времени, когда вы его используете.

+0

У вас есть отредактированное отклонение. Если вы хотите изменить код в ответе, проверьте профиль пользователя. Если они сейчас вокруг, сделайте комментарий. Если они не были здесь долгое время, перейдите к редактированию и упомяните об этом в комментарии редактирования. Если он отклоняется, оставьте комментарий с ответом с предложением. Если вы получите до 2000 репутации, вы можете сделать эти типы редактирования без проверки. –

0

Я бы предложил использовать ch.qos.logback.classic.Logger для генерации файла на базах времени.

Вот полный пример. Надеюсь, что это помогает вам

Logback - set log file name programmatically

+0

Это не только время, но метод getUsername(), который извлекает из Db and.am i правильный подход? – praveen

Смежные вопросы