java - 如何在Java中创建某种对象类型的List?

标签 java oop polymorphism

我正在尝试了解 Java 中的 OOP,但遇到了一个我自己无法理解/解决的常见问题。我研究过这个主题并找到了相关 Material ,但我仍然无法理解。 (请原谅我的无知)。

1-我有一个仅包含一个方法的接口(interface),并且该方法在实现时应返回一个字符串列表。 (这里一切都很好)

2- 抽象类实现接口(interface)并包含一些额外的方法,例如:

public void setSomething(List<MyInterface> something) { this.something = something; }

public List<MyInterface> getSomething() { return something; }

现在,一个新的子类扩展了抽象类,我想做的事情之一是调用方法 setSomething 并创建一个 MyInterface 类型的列表。

有人可以指出我如何实现这一目标的正确方向吗?

谢谢

最佳答案

以最简单的方式,例如

public List<Whatever> generateList() { 
  return new ArrayList<>();
}

好吧,说真的:上面返回一个空列表。但这对于一些初步测试来说应该足够了。

然后你可以继续前进

public List<Whatever> generateList() { 
  List<Whatever> results = new ArrayList<>();
  results.add(new Whatever());
  return results;
}

...添加实际对象,当然,只有您知道如何创建。

或者也许,根据您的输入寻求非常简单的解决方案:

class DerivedClass ... {

   private final List<YourInterface> someObjects;

   void setSomething(List<YourInterface> otherObjects) {
     this.someObjects = otherObjects;
   }

   List<YourInterface> getSomething() {
     return this.someObjects;
   }

编辑:看来您的问题是您不知道如何创建界面的对象。事实是:那是不可能的。您只能实例化(调用 new)。换句话说:您需要一些实现 MyInterface 的类;你是该类的"new"对象;并将这些对象添加到您的列表中。

关于java - 如何在Java中创建某种对象类型的List?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39319700/

相关文章:

c++ - 如何使用继承作为参数的 std::string?

java - 使用itext在亚马逊s3上存储pdf文件

javascript - ES6,从父级构造函数中访问子级设置的 props

python - 如何在新类中实例化对象?

java - java中多态的概念

java - 如何将抽象类作为微服务的入口api契约并同时解决多态性?

java - 为什么编译器并不总是插入无参数构造函数?

java - 棘手的特殊单引号

java - SimpleJaxWsServiceExporter 和 wssecurity

c++ - 模板和静态对象(未定义的引用和要求来自)