java-理解方法签名

gc0ot86w  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(411)

应该向该java方法发送哪些参数:

public void resume(Collection<TopicPartition> partitions)

更多细节在这里。
我看得出来 <TopicPartition> 是具有以下签名的java类: TopicPartition(String topic, int partition) 但在那之后,还有一个关键词 partitions 在上面的java方法中。
那么是3个参数还是2个或1个?
请有人描述一下我应该如何阅读这种签名。
谢谢。

6tdlim6h

6tdlim6h1#

让我们一步一步地看一下:
首先,当然只有一个参数名为“partitions”

public void resume(Collection<TopicPartition> partitions)
``` `public` 是访问修饰符,这意味着此方法在任何地方都可见 `void` 是返回类型,表示没有返回值 `resume` 方法名称/标识符 `Collection<TopicPartition> partitions` 有点难以解释:
接口“collection”后跟一个类型(topicpartitions)意味着您可以将topicpartition对象的任何集合输入到该方法。例如。:

List list = new LinkedList<>();
resume(list); // valid, sind List or more exact LinkedList are a Collection

Queue qq = new PriorityQueue<>();
resume(qq); // valid, sind Que or more exact PriorityQueue are a Collection

语法 `Collection<Type>` 是java泛型的一部分,您可以在本教程中进一步了解它。
这里所说的关键字('partitions')根本不是关键字,只是输入参数的名称/标识符。必须为每个参数指定一个目标名称,以便在方法代码中识别它。
在本例中,您可以将“partitions”重命名为任何您想要的名称,我可以保证类似“partcollection”的名称
void,return,public,private,static,class。。。这些是关键词。
其次,topicpartition和您在这里引用的方法是topicpartition类的构造函数,它需要2个参数: `String topic` 以及 `int partition` 不仅仅是一种方法。
构造函数是示例化类时调用的方法(例如,使用 `new` 关键字)。
所以给你一个更详细的例子:

List list = new LinkedList<>();
list.add(new TopicPartition("part1", 1));
list.add(new TopicPartition("part2", 2));
resume(list);
// resume has now been called with argument of a list (which is a collection)
// containing two TopicPartition objects whit part1, part2 and 1,2 as
// construction arguments

相关问题