Перейти к основному содержимому

1310 записей с тегом "Java"

Посмотреть все теги

· 4 мин. чтения

1. Обзор

Одним из самых приятных изменений в Java 8 стало введение лямбда-выражений , поскольку они позволяют нам отказаться от анонимных классов, значительно сокращая шаблонный код и улучшая читабельность.

Ссылки на методы — это особый тип лямбда-выражений . Они часто используются для создания простых лямбда-выражений путем ссылки на существующие методы.

Существует четыре вида ссылок на методы:

  • Статические методы
  • Экземплярные методы конкретных объектов
  • Методы экземпляра произвольного объекта определенного типа
  • Конструктор

В этом руководстве мы рассмотрим ссылки на методы в Java.

· 2 мин. чтения

1. Введение

В этом руководстве мы собираемся показать, как создать пользовательское исключение, когда необязательный параметр пуст .

Если вы хотите углубиться в необязательность, взгляните на наше полное руководство здесь.

2. Необязательный.orElseThrow

Проще говоря, если значение присутствует, то isPresent() вернет true , а вызов get() вернет это значение. В противном случае выбрасывается NoSuchElementException .

· 2 мин. чтения

1. Обзор

Официальное определение шаблона проектирования Bridge, введенное Gang of Four (GoF), состоит в том, чтобы отделить абстракцию от ее реализации, чтобы они могли меняться независимо друг от друга.

Это означает создание интерфейса-моста, который использует принципы ООП для разделения обязанностей на разные абстрактные классы.

2. Пример шаблона моста

Для шаблона Bridge мы рассмотрим два уровня абстракции; один из них — геометрическая форма (например, треугольник и квадрат), заполненная разными цветами (наш второй слой абстракции):

· 2 мин. чтения

В этом кратком руководстве мы собираемся преобразовать простой массив байтов в Reader , используя обычную Java, Guava и, наконец, библиотеку ввода-вывода Apache Commons.

Эта статья является частью серии «Java — Back to Basic» здесь, на ForEach.

1. С простой Java

Давайте начнем с простого примера Java, выполняя преобразование через промежуточную строку:

@Test
public void givenUsingPlainJava_whenConvertingByteArrayIntoReader_thenCorrect()
throws IOException {
byte[] initialArray = "With Java".getBytes();
Reader targetReader = new StringReader(new String(initialArray));
targetReader.close();
}

Альтернативным подходом было бы использование InputStreamReader и ByteArrayInputStream :

· 2 мин. чтения

В этом кратком руководстве мы собираемся проиллюстрировать , как преобразовать файл в средство чтения , используя обычную Java, Guava или Apache Commons IO. Давайте начнем.

Эта статья является частью серии «Java — Back to Basic» здесь, на ForEach.

1. С простой Java

Давайте сначала посмотрим на простое решение Java:

@Test
public void givenUsingPlainJava_whenConvertingFileIntoReader_thenCorrect()
throws IOException {
File initialFile = new File("src/test/resources/initialFile.txt");
initialFile.createNewFile();
Reader targetReader = new FileReader(initialFile);
targetReader.close();
}

2. С гуавой

· 1 мин. чтения

В этом кратком руководстве мы рассмотрим преобразование InputStream в Reader с использованием Java, затем Guava и, наконец, Apache Commons IO.

Эта статья является частью серии « Java — Back to Basic » здесь, на ForEach.

1. С Java

Во-первых, давайте посмотрим на простое решение Java — с использованием легкодоступного InputStreamReader :

@Test
public void givenUsingPlainJava_whenConvertingInputStreamIntoReader_thenCorrect()
throws IOException {
InputStream initialStream = new ByteArrayInputStream("With Java".getBytes());

Reader targetReader = new InputStreamReader(initialStream);

targetReader.close();
}

2. С гуавой

· 2 мин. чтения

В этом кратком руководстве показано, как преобразовать Reader в byte[] , используя обычную Java, Guava и библиотеку ввода-вывода Apache Commons.

Эта статья является частью серии «Java — Back to Basic» здесь, на ForEach.

1. С Java

Начнем с простого Java-решения — проходим через промежуточную строку:

@Test
public void givenUsingPlainJava_whenConvertingReaderIntoByteArray_thenCorrect()
throws IOException {
Reader initialReader = new StringReader("With Java");

char[] charArray = new char[8 * 1024];
StringBuilder builder = new StringBuilder();
int numCharsRead;
while ((numCharsRead = initialReader.read(charArray, 0, charArray.length)) != -1) {
builder.append(charArray, 0, numCharsRead);
}
byte[] targetArray = builder.toString().getBytes();

initialReader.close();
}

Обратите внимание, что чтение выполняется порциями, а не по одному символу за раз.

· 2 мин. чтения

В этом кратком руководстве мы собираемся преобразовать Reader в String , используя обычную Java, Guava и библиотеку ввода-вывода Apache Commons.

Эта статья является частью серии «Java — Back to Basic» здесь, на ForEach.

1. С Java

Начнем с простого Java-решения, которое последовательно считывает символы из Reader :

@Test
public void givenUsingPlainJava_whenConvertingReaderIntoStringV1_thenCorrect()
throws IOException {
StringReader reader = new StringReader("text");
int intValueOfChar;
String targetString = "";
while ((intValueOfChar = reader.read()) != -1) {
targetString += (char) intValueOfChar;
}
reader.close();
}

Если есть много контента для чтения, решение для массового чтения будет работать лучше:

· 1 мин. чтения

В этом кратком руководстве мы рассмотрим, как преобразовать String в Reader , сначала используя обычную Java, затем Guava и, наконец, библиотеку Commons IO.

Эта статья является частью серии «Java — Back to Basic» здесь, на ForEach.

1. С простой Java

Начнем с решения Java:

@Test
public void givenUsingPlainJava_whenConvertingStringIntoReader_thenCorrect() throws IOException {
String initialString = "With Plain Java";
Reader targetReader = new StringReader(initialString);
targetReader.close();
}

Как видите, StringReader доступен из коробки для этого простого преобразования.

· 2 мин. чтения

1. Обзор

В этом кратком руководстве мы кратко рассмотрим метод nextLine() класса java.util.Scanner , конечно, с упором на изучение его практического использования.

2. Сканер.nextLine()

Метод nextLine() класса java.util.Scanner выполняет сканирование с текущей позиции до тех пор, пока не найдет разделитель строк. Метод возвращает строку от текущей позиции до конца строки.

Следовательно, после операции положение сканера устанавливается в начало следующей строки, следующей за разделителем.