如何使用 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,我会试试的!感谢指导!
除了 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,我会试试的!感谢指导!