gpt4 book ai didi

java - 减少 if else 来确定 dataType

转载 作者:行者123 更新时间:2023-12-02 07:45:41 26 4
gpt4 key购买 nike

如何减少这种使用反射

private static Object determineDataType(final String value, String dataType)
{
System.out.println("Name--->>" + dataType);
if(dataType.equals(Boolean.class.getName()))
{
return new Boolean(value);
}
else if(dataType.equals(String.class.getName()))
{
return new String(value);
}
else if(dataType.equals(Character.class.getName()))
{
return new String(value);
}
else if(dataType.equals(Byte.class.getName()))
{
return new Byte(value);
}
else if(dataType.equals(Short.class.getName()))
{
return new Short(value);
}
else if(dataType.equals(Integer.class.getName()))
{
return new Integer(value);
}
else if(dataType.equals(Long.class.getName()))
{
return new Long(value);
}
else if(dataType.equals(Float.class.getName()))
{
return new Float(value);
}
else if(dataType.equals(Double.class.getName()))
{
return new Double(value);
}
//defualt return the String value, Lets' AOPI do the Validation
return new String(value);
}

最佳答案

您可以使用Class.forName和方法 getConstructor (here 是一个例子):

Object instance = Class.forName(dataType)
.getConstructor(new Class[] {String.class})
.newInstance(new Object[]{value});

顺便说一句,它不适用于字符和 boolean 值,因为您对它们进行了特殊处理。

关于java - 减少 if else 来确定 dataType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10895624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com