我有子类,每个类与其他成员一起携带不同类型的值。可能有 LongObject、IntObject、StringObject 等。
会给我一个值,可以是long、int、string等,我要分别创建一个LongObject、IntObject、StringObject等。
重载如下所示的方法会更快(a)还是只使用如下所示的 elseif (b)?
这可能不是明显的性能差异。无论如何,重载方法可能以与 if/else 类似的方式实现。我不知道。
我也可以听到你们中的一些人说只是测试它。当然,我应该这样做。如果有人知道的话,我还想知道如何在后台处理这种类型的重载。
请让我知道你的想法。
谢谢,jbu
一个)
BaseObject getObject(long l)
{
return new LongObject(l);
}
BaseObject getObject(int i)
{
return new IntObject(i);
}
BaseObject getObject(String s)
{
return new StringObject(s);
}
...
b)
BaseObject getObject(Object x)
{
if(value is a long)
return new LongObject((Long)x);
else if(value is an int)
return new IntObject((Int)x);
else if(value is a String)
return new StringObject((String)x);
...
}
编辑:我想我没有完全添加所有细节,你们中的一些人抓住了它。对于这两种选择,我仍然必须获取一个对象/值,并根据该值确定它是什么类型。因此,我仍然必须做某种 if/else 才能使用重载方法。