Автономный принтер средства форматирования/программы изящного форматирования/симпатичного кода Java? [закрытый]

Вам нужно где-то добавить возвращаемое значение. Это должно работать:

public bool Equality(byte[] a1, byte[] b1)
{
   int i;
   if (a1.Length == b1.Length)
   {
      i = 0;
      while (i < a1.Length && (a1[i]==b1[i])) //Earlier it was a1[i]!=b1[i]
      {
          i++;
      }
      if (i == a1.Length)
      {
          return true;
      }
   }

   return false;
}

Но это намного проще:

return a1.SequenceEqual(b1);

В качестве альтернативы, вы можете использовать IStructuralEquatable из .NET 4:

return ((IStructuralEquatable)a1).Equals(b1, StructuralComparisons.StructuralEqualityComparer)

Если производительность вызывает беспокойство, я бы порекомендовал переписать ваш код для использования класса Binary , который специально оптимизирован для этого варианта использования:

public bool Equality(Binary a1, Binary b1)
{
    return a1.Equals(b1);
}

Быстрый тест на моей машине дает следующую статистику:

Method                   Min         Max         Avg
binary equal:          0.868       3.076       0.933    (best)
for loop:              2.636      10.004       3.065
sequence equal:        8.940      30.124      10.258
structure equal:     155.644     381.052     170.693

Загрузите этот файл LINQPad , чтобы самостоятельно запустить тест.

81
задан Bhargav Rao 5 February 2019 в 02:12
поделиться

6 ответов

JIndent (коммерческий) делает то, что вы хотите:

http://www.jindent.com/

Я также использовал Jalopy в прошлом для этого, он открыт источник:

http://jalopy.sourceforge.net/

РЕДАКТИРОВАТЬ: Я отмечу, что Jalopy довольно старый, и, похоже, в нем нет каких-либо последних обновлений. Я не совсем уверен, будет ли он работать с Java 5/6. Вы можете вместо этого взглянуть на Jacobe:

http://www.tiobe.com/index.php/content/products/jacobe/Jacobe.html

Здесь, на Roedy Green's, есть более полный список форматеров. сайт:

http://mindprod.com/jgloss/beautifier.html

25
ответ дан 24 November 2019 в 09:43
поделиться

Джалопи может быть интересен. Он подключается к Ant и поэтому не зависит от вашей IDE.

Astyle также может быть полезен. Это открытый исходный код (например, Jalopy), но написанный на C ++. Он ориентирован на форматирование Java / C / C ++ и может управляться партиями (через сценарии оболочки или аналогичные)

7
ответ дан 24 November 2019 в 09:43
поделиться

Я также много использовал PrettyPrinter, встроенный в JRefactory ( http://jrefactory.sourceforge.net / ). Я обнаружил это через его плагин для JEdit. Я оценил его, так как в нем было лучшее покрытие javadoc, которое я когда-либо видел.

К сожалению, он кажется мертвым (без эволюции с 2004 года) и на самом деле он не поддерживает Java5.

Кстати, я подтверждаю, что Triemax - это коммерческий пакет на основе на мертвом Jalopy с открытым исходным кодом.

0
ответ дан 24 November 2019 в 09:43
поделиться

Я использовал Dr. Java для кодирования и с помощью быстрой клавиши Ctrl + A + он форматирует все это красиво с подсветкой синтаксиса. Я использовал его на Mac и Windows, не знаю, поддерживают ли они Linux. И это открытый исходный код, отдельный и бесплатный.

1
ответ дан 24 November 2019 в 09:43
поделиться

Вы также можете запустить программу преобразования Eclipse из командной строки.

Вот документация Eclipse для функции

Сначала вы должны создать файл конфигурации, специфичный для вашего проекта настроек форматирования кода Java.

Затем сохраните {projectDirectory} / .settings / org.eclipse.jdt.core.prefs в другое место.

Теперь вы вызовете средство форматирования.

"c: \ path \ to \ eclipse \ eclipse.exe" -vm "C :

[ПРЕДУПРЕЖДЕНИЕ] Похоже, это перестало работать в Eclipse 2018. Используйте Eclipse Oxygen.

14
ответ дан 24 November 2019 в 09:43
поделиться

Попробуйте "Украсить код Якоба":

http://www.tiobe.com/ index.php / content / products / jacobe / Jacobe.html

Персональная версия бесплатна.

1
ответ дан 24 November 2019 в 09:43
поделиться
Другие вопросы по тегам:

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