Статьи

Первый взгляд на Commons Lang 3.0 Beta

Apache Commons Lang 3.0 Beta была выпущена 4 августа, и проект, наконец, перешел на Java 5. API теперь обобщен, где применимо, используется varags, а некоторые функции, которые теперь поддерживаются самой Java, были удалены. Все это означает, что Lang 3.0 не имеет обратной совместимости с версиями 2.x. Чтобы сделать его работоспособным с предыдущими версиями, имя пакета было изменено на «apache.commons.lang3 », что позволяет Lang 3.0 находиться рядом с предыдущей версией Lang без каких-либо побочных эффектов. Вы можете скачать бета-версию Commons Lang 3.0 по этой ссылке .

В этой статье я расскажу вам о некоторых функциях, которые были добавлены или улучшены в версии 3.0.

ArrayUtils 

Класс ArrayUtils позволяет вам выполнять операции с массивами, примитивными массивами и массивами примитивных оболочек. Этот класс существует с версии 2.0, и в выпуске rhw 3.0 он был обобщен, и был добавлен новый метод toArray. Давайте посмотрим на его особенности:

  1. Метод toArray
    Это новый метод, добавленный в выпуске 3.0, который позволяет создавать универсальный массив, безопасный с точки зрения типов. Этот метод очень полезен, поскольку массивы нельзя создавать из универсального типа. Для получения дополнительной информации о том, почему массивы не могут быть созданы для универсального типа, обратитесь к этой ссылке . Этот метод использует тот факт, что varags реализованы как массивы, поэтому этот метод принимает varags типа T и возвращает массив T.
    String[] array = ArrayUtils.toArray("shekhar", "gulati");
  2. Другое использование метода toArray — создание универсального пустого массива.

           String[] array = ArrayUtils.<String> toArray();
  3. Метод toMap
    Этот метод существует с 2.x дней и был обобщен в версии 3.0. Результатом генерирования этого метода является то, что вы получаете безопасные карты типов, следовательно, вы избегаете ClassCastExceptions. Например, в версиях 2.x
    Map map = ArrayUtils.toMap(new String[][]{{"shekhar","gulati"}});
  4.  Но в версии 3.0    

    Map<String, Integer> map2 = ArrayUtils.<String,Integer>toMap(new Object[][]{{"shekhar",1}});
  5. Другие методы, такие как subarray, addAll, add и т. Д., Также генерируются. Поэтому они теперь безопасны для типов.

CharSequenceUtils

Этот класс является новым классом, добавленным в версии 3.0. Этот класс позволяет вам выполнять нулевые безопасные операции над CharSequence . У него есть два метода:

  1. Метод длины
    Этот метод дает вам длину любой CharSequence.
    CharSequenceUtils.length(CharBuffer.wrap("shekhar")); // return 7
    CharSequenceUtils.length("shekhar"); // return 7
    CharSequenceUtils.length(new StringBuilder("shekhar").append("gulati"));//return 13
  2. Метод subSequence
    Этот метод возвращает новую CharSequence, начиная с char, указанного в индексе.
    CharSequenceUtils.subSequence("test", 1);
    will return est

EnumUtils

 

Пакет «org.apache.commons.lang.enums» был удален из выпуска 3.0, потому что из версии 5 Java Enums предоставляются «из коробки». Был добавлен новый класс EnumUtils, который предоставляет вспомогательные методы для перечислений Java. Давайте посмотрим на некоторые из его методов:

  1. Метод getEnumMap
    Этот метод дает вам карту имен перечислений и перечислений.
    enum ReportType{
    REPORT1,REPORT2
    }
    Map<String, ReportType> enumMap = EnumUtils.getEnumMap(ReportType.class);
  2. Метод getEnumList
    Этот метод дает вам список перечислений для данного класса перечисления.
    List<ReportType> enumList = EnumUtils.getEnumList(ReportType.class);
  3. Метод isValidEnum
    Этот метод проверяет, является ли данное имя перечисления допустимым для данного класса перечисления.
    EnumUtils.isValidEnum(ReportType.class, "REPORT1");// will return true
    EnumUtils.isValidEnum(ReportType.class, "REPORT3"); // return false

ObjectUtils

Методы класса ObjectUtils, такие как min, max, clone и т. Д., Генерируются, что делает их безопасными для типов. Добавлен новый метод firstNonNull (T …). Этот метод возвращает первое значение в массиве, которое не является нулевым.

ObjectUtils.firstNonNull(null, null,null,null, "abc", null,"def");//will return "abc"

StringUtils

StringUtils не нуждается в представлении. Я думаю, что каждый разработчик Java знает это. Некоторые сигнатуры методов были изменены для поддержки CharSequence вместо String. Например, isEmpty (String) изменяется на isEmpty (CharSequence). Также были добавлены некоторые новые методы:

  1. Метод stripAccents
    Этот метод удаляет акценты из строки. Этот метод работает с методом JDK 1.6 и не будет работать в версии 1.5. 
    StringUtils.stripAccents("&ecute;clair") ;  //will return "eclair"
  2. Метод normalizeSpace
    Эта функция возвращает входную строку с пробелами, нормализованными с помощью trim (String), чтобы удалить начальные и конечные пробелы, а затем заменить последовательности пробельных символов одним пробелом.
    StringUtils.normalizeSpace("  a  b   c  ") ; // will return "a b c"

Это некоторые из функций, которые были добавлены или улучшены в бета-версии 3.0. Я расскажу о
других новых функциях во второй части этой серии на Commons-Lang 3.0. Некоторые другие новые функции связаны с поддержкой параллелизма и подключаемым API для преобразования текста.