Утилизация кадра в JAVA качели автоматически после определенного условия выполняет [дубликат]

Вы можете попытаться отформатировать вывод в хорошем формате. (не проверено, хотя)

public override string ToString()
{
    return string.Format("Name: {0} Number: {1:n0} Date: {2:yyyy-MM-dd} Salary: {3:n2}", _name, _number, _date, _salary);
}

существует множество целей, переписывающих .ToString (), в зависимости от контекста. например,

  • некоторым разработчикам нравится иметь красиво отформатированное описание объекта при выполнении отладки, переписывание .ToString () позволит им иметь содержательное описание с некоторым идентификатором (например, идентификатор объекта );
  • Некоторые разработчики хотели бы поместить некоторый код сериализации в метод ToString ();
  • Некоторые разработчики даже ввели некоторый отладочный код в метод .ToString (), хотя это может быть не очень хорошая практика.

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

4
задан karel_evzen 12 November 2009 в 22:51
поделиться

2 ответа

Нет. Он может работать или может вызвать проблемы. Просто оберните метод в SwingUtilities.invokeLater (...) и не беспокойтесь об этом.

4
ответ дан camickr 18 August 2018 в 00:31
поделиться
  • 1
    Да, но обматывание одного вызова метода в новом runnable кажется довольно громоздким, не так ли? – karel_evzen 12 November 2009 в 22:55
  • 2
    громоздким или нет, вот что вам нужно сделать, если вам нужно сделать работу gui из другого потока – nos 12 November 2009 в 22:56
  • 3
    Кажется маловероятным, что вызов метода - это единственное, что делается. Вероятно, есть другой код, который выполняется небезопасным образом. (В любом случае, реальный h4x0rz будет использовать java.beans.EventHandler.) – Tom Hawtin - tackline 12 November 2009 в 23:14
  • 4
    На самом деле существует более потенциально опасный код, работающий там, но все они вызываются с помощью SwingUtilities. Этот метод dispose вызывается из другого метода класса, и мне просто интересно, нужно ли также обертывать метод dispose, поскольку это только «освобождение». ресурсов, а не манипулировать чем-либо другим. Но я думаю, что утилизация все еще является манипуляцией и должна быть выполнена с основным потоком тоже. :) – karel_evzen 13 November 2009 в 00:18
  • 5
    @Tom Hawtin - я думаю, я не настоящий H4x0r. Я предпочитаю безопасность времени компиляции в своих приложениях. Я предполагаю, что это происходит из-за усердного обучения. Отражение «круто», но это также надежный способ облегчить ваше приложение. – Nemi 13 November 2009 в 02:18

Нет, Swing не является потокобезопасным. Используйте что-то вроде

Runnable doWorkRunnable = new Runnable() {
    public void run() { myFrame.dispose(); }
};
SwingUtilities.invokeLater(doWorkRunnable);
2
ответ дан nos 18 August 2018 в 00:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: