Получение данных из строки в Generics Java

223
20 мая 2018, 06:20

Есть ли какая-нибудь возможность создать метод, который превратит строку в необходимое значение нужного типа. Предполагаю использовать типы Float, String, Short. Желаю нечто вроде этого:

public MyObject(T value, int a) {
  //...//
}
public static <T> MyObject getMyObjectFromLine(String line) {
    return new MyObject<T>(???, 42);
}
Answer 1

Попробуйте такой вариант:

public class MyVal<T> {
    private T val;
    public MyVal(T val) {
        this.val = val;
    }
    public static <T> MyVal getMyObjectFromLine(String value, String type) {
        switch (Type.valueOf(type)) {
            case STRING:
                return new MyVal<>(value);
            case INTEGER:
                return new MyVal<>(Integer.parseInt(value));
            case FLOAT:
                return new MyVal<>(Float.parseFloat(value));
            default:
                throw new IllegalArgumentException("Unexpected type: " + type);
        }
    }
}
READ ALSO
Вывод кол-ва цифр в массиве java

Вывод кол-ва цифр в массиве java

Программа бросает 2 кости 20 разНужно вывести в одномерном массиве сколько раз выпала каждая сумма (к примеру 1+1-2 3 раза и так до 12)

239
Преобразование примитивных типов в java нагружает процессор?

Преобразование примитивных типов в java нагружает процессор?

Собственно интересно как лучше поступать - создавать переменные с byte или с int, если известно что число никогда не будет больше границ byte;

169
Отправка request&#39;a с атрибутами

Отправка request'a с атрибутами

Есть Jsp страничка для авторизацииВ ней есть такой блок кода:

192
Есть поток в котором хранится дата. Вопрос, как отфильтровать все даты имеющие в своем составе на второй позиции с конца цифру кратную 3?

Есть поток в котором хранится дата. Вопрос, как отфильтровать все даты имеющие в своем составе на второй позиции с конца цифру кратную 3?

Можно просто отфильтровать поток (если не нужно считать 0 кратным 3, нужно будет добавить ещё один фильтр):

173