最近开始为Android编程,我遇到了我的代码的一部分,我想知道是否可以更好的方式设计。我有一个SparseArray
包含表示resourceId的Int的映射到名为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;
}
}
答案 0 :(得分: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;
}
}