0

最近アンドロイドのプログラミングを始めたので、コードの一部に出くわしました。より良い方法で設計できるのではないかと思います。とSparseArray呼ばれる抽象クラスへの Int の表す resourceId の包含マッピングがありResourceます。複数のクラスがこのクラスから継承するため、リソースを取得したいときに質問が発生します。ResourceオブジェクトをジェネリックTにキャストしようとする私の現在よりも、このソリューションのより良い設計はありますか

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 に答える