我正在开发一个 Feed RSS 解析器,但我一直纠结于应该从中得到什么。 我将提要的 URL 和要读取的元素作为输入(例如:标题、描述...),并且我曾经获取哈希表的数组列表,其中每个键都是一个元素:
ArrayList<Hashtable<String,String>>
但我想把事情做得更好。由于我的应用程序中有一些类管理从不同 URL 检索的新闻(类 News1、News2、News3),所以我想返回一个 ArrayList,其中每个元素都有一个抽象方法(其实现将根据 News1、2 或 3 进行更改) ) 将哈希表转换为对象的属性。 我的问题是我不知道如何将每个字典转换为从抽象类派生的对象......我什至尝试创建这样的东西:
public abstract class GenericNews extends Hashtable<String, String> {
public abstract News getObject();
}
但我不能沮丧。我怎样才能做到呢? 感谢您的帮助。
最佳答案
您将无法施放它。您将需要创建包装 HashTable 的 GenericNews 对象的新实例,然后返回该实例。
另外,我不确定在通用新闻中实际扩展 Hashtable 是否明智 - 为什么不让你的 ArrayList 成为 ArrayList<GenericNews>
并在 GenericNews 上有方法来访问其中的项目,例如 getNewsItem(String keyword)
.
关于java - 如何将哈希表向下转换为抽象类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9411952/