0

最近开始为 android 编程,我遇到了我的一部分代码,我想知道是否可以以更好的方式设计。我有一个SparseArrayInt 的表示 resourceId 到一个名为 的抽象类的包含映射Resource。当我想检索我的资源时,我的问题就出现了,因为多个类继承自这个类。这个解决方案是否有比我目前尝试将 Resource 对象转换为通用 T 更好的设计。这确实不是那么安全,因为可以使用任何类,而不仅仅是 Resource 固有的类

public <T> T getAsset(int resourceId)
{
    try
    {
        T ReturnAsset = (T)resources.get(resourceId);
        return ReturnAsset;
    }
    catch(ClassCastException cce)
    {
        Log.w("Resource", "Invalid cast of asset "+cce.toString());
        return null;
    }
}
4

1 回答 1

0

你可以这样做,

public <T extends Resource> T getAsset(int resourceId)
{
    try
    {
        T ReturnAsset = (T)resources.get(resourceId);
        return ReturnAsset;
    }
    catch(ClassCastException cce)
    {
        Log.w("Resource", "Invalid cast of asset "+cce.toString());
        return null;
    }
}
于 2013-08-30T13:10:21.220 回答