所以我试图避免使用重复的代码。目前我有几个包含字符串的列表;一个名单被称为"图像"和其他"视频"这些列表包含内容的属性,它们位于链接列表中,因为该信息是从文本文件中读取的。
我正在尝试浏览这些列表并创建图像/视频对象以放置在另一个对象中(稍后)。
目前我有一个方法
private void loadContent(List<String> contentType)
内部如何根据传递的列表名称更改对象声明等。例如: 如果我用图像列表调用方法:
loadContent(images)
我希望该函数能够创建图像对象:
Image media = new Image(title, visibility);
如果我通过了视频列表:
loadContent(videos)
我希望该功能能够创建视频对象:
Video media = new Video(title, visibility);
如果措辞严重,我很抱歉,我觉得很难说清楚这个问题。我也理解多态的概念;我根本没有看到内容对象完成这项工作(读取字符串等)是可行的,因为根据列表的内容创建了对象。
答案 0 :(得分:0)
private void loadContent(List<String> content, int contentType)
您可以传入一个整数作为您提供媒体类型的ID。
然后你可以使用if / else语句只为某些内容类型做某些事情。
答案 1 :(得分:0)
你提出了多态性的主题。这种情况将是一个很好的候选人,以证明您对其工作原理的理解。您可以创建一个名为Media的抽象类,并定义一个名为Render()的方法。然后将Media类扩展为两个子类ImageMedia和VideoMedia。在每个子类扩展类Media的情况下,它们应该使用自己的如何呈现内容的实现来覆盖Render()方法。最后,您可以像这样拥有类型媒体列表:List&lt; Media&gt;并在每个上面调用Render()方法时迭代它。通过这种方式,您可以强加多态行为并大大简化代码。