我希望使用HashMap在Block类中存储属性,以使整个属性过程更加高效和灵活。到目前为止我所拥有的基本上是一个BlockProperty类,它将数据“内部”存储为字符串,并使用正确的解析器(double,float,int,boolean等)通过检查“属性类型”的值来解析一个静态类,最后一个数组作为列表。
我希望能够在某个属性的类中请求值,并且它将以适当的原始类型返回值。
属性类型列表 - 可以使用get方法重新排列以查找索引和返回索引值。
public Object getAsPrimitiveData()
{
if(!isObjectType)
{
if(propertyType == BlockPropertyTypes.getIndexWithType("String"))
return internalPropertyData;
else if(propertyType == BlockPropertyTypes.getIndexWithType("int"))
return processIntType();
else if(propertyType == BlockPropertyTypes.getIndexWithType("short"))
return processShortType();
else if(propertyType == BlockPropertyTypes.getIndexWithType("long"))
return processLongType();
else if(propertyType == BlockPropertyTypes.getIndexWithType("boolean"))
return processBooleanType();
else if(propertyType == BlockPropertyTypes.getIndexWithType("float"))
return processFloatType();
else
throw new IllegalArgumentException("Property type is invalid.");
}
阻止属性If语句。
public float processFloatType()
{
try
{
return Float.parseFloat(internalPropertyData);
}catch(Exception e)
{
Notifier.printException(e);
Notifier.cwarn("Property Type and Property Data do not match types! " + this.propertyType + " == " + BlockPropertyTypes.getIndexWithType("float") + "?? returning -1;");
return -1;
}
}
进程****类型都调用类似于下面的方法但是针对它们各自的类型进行了修改。 (有额外的输出用于调试目的)
{{1}}
答案 0 :(得分:0)
考虑使用数字
int a = 5;
float f = 5.5f;
double d = 5.5;
Number na = a;
Number nf = f;
Number nd = d;
System.out.println(na.getClass());
System.out.println(nf.getClass());
System.out.println(nd.getClass());
<强>输出强>
class java.lang.Integer
class java.lang.Float
class java.lang.Double