Как преобразовать из String в определенные типы с помощью PropertyEditor

Я пытаюсь передать любой тип класса, кроме примитивных типов java.lang, таких как типы java.math (например, java.math.BigInteger) и настраиваемые типы сборки (например, com.parse.MyOwnType). Приведенный ниже метод подходит только для примитивных типов. У кого-нибудь есть предложение о том, как использовать PropertyEditor помимо примитивных типов? Существуют ли другие библиотеки редакторов, которые можно использовать для преобразования?

import java.beans.PropertyEditor;
import java.beans.PropertyEditorManager;

private Object convert(Class<?> targetType, String text) {
    PropertyEditor editor = PropertyEditorManager.findEditor(targetType);
    editor.setAsText(text);
    return editor.getValue();
}

person user2537246    schedule 30.01.2020    source источник
comment
Можете ли вы добавить пример использования, которого вы пытаетесь достичь.   -  person Garreth Golding    schedule 30.01.2020


Ответы (2)


Хотя я не думаю, что приведенное ниже ответит на ваш вопрос напрямую, оно может дать вам некоторое руководство или помощь в отношении того, как вы можете достичь своего конкретного варианта использования.

Документация по Java по верхним границам

public static void main(String[] args) {
    convert(MyOwnType.class, "Works!");
    convert(String.class, "Compilation Issue!");
}

static Object convert(Class<? extends MyType> targetType, String text) {
    PropertyEditor editor = PropertyEditorManager.findEditor(targetType);
    editor.setAsText(text);
    return editor.getValue();
}

static class MyOwnType extends MyType {

}

static abstract class MyType {

}
person Garreth Golding    schedule 30.01.2020

Спасибо, Гаррет Голдинг, я попробую! Спасибо за руководство!

person user2537246    schedule 30.01.2020