当前位置: 首页 > 面试题库 >

Java使用具有列表和接口的泛型

上官培
2023-03-14
问题内容

好的,这是我的问题:

我有一个包含interfaces的列表List<Interface> a-和扩展该接口的接口的列表:List<SubInterface> b。我要设置a = b。我不希望使用addAll()任何东西或会花费更多内存的东西,因为我正在做的事情已经非常耗费成本。我确实需要能够说a = b。我已经尝试过List<? extends Interface> a,但是后来我无法将接口添加到列表中a,只能将SubInterfaces
添加到列表中。有什么建议?

我希望能够做这样的事情:

List<SubRecord> records = new ArrayList<SubRecord>();
//add things to records
recordKeeper.myList = records;

RecordKeeper类是包含接口列表的类(NOT subInterfaces)

public class RecordKeeper{
    public List<Record> myList;
}

问题答案:

因此,我的一个朋友找到的一个相当简单的解决方案是:

recordKeeper.myList = (List<Record>)(List<? extends Record>)records;

就我所知,这是可行的,因为它需要一些婴儿步骤。List<SubRecord>List<? extends Record>,并且List<? extends Record>List<Record>。它可能并不漂亮,但是仍然可以工作。



 类似资料:
  • 问题内容: 我为缓存编写了一个函数来检索特定对象。这样我就不需要投了。 我正在这样使用 但是现在我的缓存中有一个字符串列表,我不能这样使用 问题是。我对Java非常陌生,我该怎么写? 问题答案: 您无法获得的类,在您的情况下,唯一的方法是:

  • 问题内容: 我想在嵌套的静态接口中使用泛型类。我的目标是做这样的事情: 但是我得到一个错误:无法对非静态类型T进行静态引用。如果进行一些更改(如下所述),我可以在接口内部使用泛型,但是我想避免使用此方法,因为编写同一个类两次:一次用于MyClass,一次用于MyInterface。 谢谢。 编辑 :我想这样做: 要么 问题答案: 静态嵌套类或嵌套接口(顺便说一句,始终是静态的)与其外部类(或接口)

  • 下面是我试图做的一个非常简单的说明: 最后一个方法调用(consumer.consumer())给了我一个编译器错误 Out projected type’EventConsumer 我知道Kotlin对泛型的要求比Java严格得多,这可能就是它不起作用的原因,但我该如何正确地实现这样的东西呢?

  • 这个问题是关于接口与实现该接口的类之间的关系。我看不出这个或这个如何回答这个问题。 我创建了一个接口和一个抽象泛型类,它实现了该接口。然后创建两个具体的类和。然后创建了一个元素列表,这些元素使用一个值和一个值扩展了。到目前为止还不错。 现在我要分配扩展为。我的期望是,这应该是有效的,因为无论什么扩展也实现。但编译器不允许我。这是一个错误: 我可以复印一下名单: 用于创建一个值,如果类型为。但赋值报

  • 如果我有这样的方法: 为什么要编译这个代码?为什么超级字符串与T兼容扩展了CharSequence

  • 问题内容: 您如何进行这项工作: 不做 编辑 为什么这不起作用? 我正在将编译器消息标记为错误。 问题答案: Reimeus已经指出,您在编辑中要求的内容是不可能的。我只想扩展一下原因。 人们会认为您可以使用以下内容: 实际上,这就是我第一次看到这篇文章时想到的。但这实际上会导致编译器错误: 类型变量不能跟其他界限 为了帮助我解释原因,我想引用Victor Rudometov在OracleBlog