如何使用 PropertyEditor 从 String 转换为特定类型

How to convert from String to specific types using PropertyEditor

除了 java.lang 原始类型(例如 java.math(例如,java.math.BigInteger)类型和自定义构建类型之外,我正在尝试传递任何 class 类型(例如,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();
}

尽管我认为以下内容不会直接回答您的问题,但它可能会就如何实现您的特定用例为您提供一些指导或帮助。

Java 关于 Upper Bounds

的文档
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 {

}

谢谢 Garreth Golding,我会试试的!感谢指导!