当前位置: 首页 > 知识库问答 >
问题:

理解:public staticint max(listlist,comparatorc)请

阳英朗
2023-03-14

我想创建一个返回任意列表的最大值的方法,我想这是一个泛型方法。但是我不明白参数,谁能给我解释一下吗?我还制作了一个迭代器,我将在解决方案中使用它来运行列表,但是当我制作迭代器的实例时,这个方法会给我以下错误:“#NameOfClass不能从静态上下文引用”,那么我如何在这里制作一个实例?(由于某种原因,它应该是静态的)我将非常感谢任何帮助!

public static <T> int maks(List<T> list, Comparator<? super T> c)
  {
    // return max in a list
  }

共有1个答案

须曜文
2023-03-14

下面是一个非常典型的泛型方法声明:

public static <T> int max(List<T> list, Comparator<? super T> c) {
  :
  :
}

总体上有两种泛型声明:1)泛型类/接口和2)泛型方法。一旦您熟悉了这两种习惯用法,您就可以很好地理解泛型了。这方面的原始类型声明是:

public static int max(List list, Comparator c) {
  :
  :
}

通过原始类型声明,可以很容易地看到此方法向其类型为int的调用方返回一个值。该方法接受两个参数:列表实例和比较器实例。

public <T> MyType myMethodName( /* parameters */) { ... }
(List<T> list, Comparator<? super T> c)

有一个助记符适用于有界通配符类型:PECS。生产者延伸,消费者超级。比较器总是其实例的使用者,因此在参数列表中指定它们的正确方法如方法声明所示。

 类似资料:
  • 我对Java还很陌生,我想知道这实际上意味着什么: 为了区别于其他问题,我阅读了关于多态性以及示例1和示例2之间的区别的帖子,并且我理解示例1允许“编程到接口”。我还理解,通过示例1,可以很容易地将list更改为LinkedList,而不会影响代码的其余部分。 但我想知道的是,例1实际上是什么意思。它会创建一个新列表吗?还是创建了一个新的ArrayList?结果对象是否具有列表的属性?或者结果对象

  • 在这里我在地图上添加标记: 使用lat lng阵列列表添加lat lng,但当我在以下帮助下添加标记时: <代码>列表 在这种情况下,我可以通过以下方式获得lat long: 以下是地图上的地图标记: 这里我得到的尺寸是这样的:

  • 我正在进行一个在线课程,其中一个问题要求我们根据列表中的索引将名称与基于以下列表和字典的关键字的理解中的工资相匹配: 期望输出: 我写了以下内容: 返回一个空集。 有人能给我一两个提示(不是代码答案)如何解决这个问题吗? 谢谢

  • 问题内容: 我可以在python中扩展语法以获取其他字典的dict理解,例如模块中的OrderedDict或继承自我的类型吗? 仅仅重新绑定名称显然是行不通的,理解语法仍然为您提供了理解和文字的普通旧字典。 那么,如果可能的话,我将如何去做呢?如果它仅适用于CPython,就可以了。对于语法,我想我会像在上那样使用前缀尝试。 注意: 当然,我们可以使用生成器表达式来代替,但是我更感兴趣的是查看py

  • No silver bullet. - The Mythical Man-Month 许多年前,我们开发的软件还是C/S(客户端/服务器)和MVC(模型-试图-控制器)的形式,再后来有了SOA,最近几年又出现了微服务架构,更新一点的有Cloud Native(云原生)应用,企业应用从单体架构,到服务化,再到更细粒度的微服务化,应用开发之初就是为了应对互联网的特有的高并发、不间断的特性,需要很高的性

  • 在上一章中,我们学习了CoffeeScript提供的各种循环,以及它的变体。 除此之外,CoffeeScript还提供了额外的循环结构,称为comprehensions 。 如果我们明确地添加可选的guard子句和当前数组索引的值,这些理解将替换其他编程语言中的for循环。 使用理解,我们可以迭代数组和对象,迭代数组的表达式是表达式,我们可以在函数中返回它们或分配给变量。 S.No. 声明和说明