[英]Java - understanding method signature
哪些參數應發送到此Java方法:
public void resume(Collection<TopicPartition> partitions)
更多細節在這里 。
我可以看到<TopicPartition>
是具有以下簽名的Java類:
TopicPartition(String topic, int partition)
但是之后,上面的Java方法中有一個關鍵字partitions
。
那么它是3個參數還是2或1?
請有人描述我應該如何閱讀這種簽名。
謝謝。
讓我們逐步進行一下:
首先 ,場外只有1個參數稱為“分區”
public void resume(Collection<TopicPartition> partitions)
public
是訪問修飾符,這意味着該方法在任何地方都可見
void
是返回類型,表示沒有返回值
resume
是方法的名稱/標識符
Collection<TopicPartition> partitions
很難解釋:
類型為“ TopicPartitions”的接口“集合”表示您可以將任何TopicPartition對象的集合輸入到方法中。 例如:
List<TopicPartition> list = new LinkedList<>();
resume(list); // valid, sind List or more exact LinkedList are a Collection
Queue<TopicPartition> qq = new PriorityQueue<>();
resume(qq); // valid, sind Que or more exact PriorityQueue are a Collection
語法Collection<Type>
是Java泛型的一部分,您可以仔細閱讀本教程 。
您在這里所說的關鍵字(“分區”)根本不是關鍵字 ,而只是該輸入參數的名稱/標識符 。 您必須為每個參數指定一個目標名稱-這樣您就可以在方法代碼中對其進行識別。
在此示例中,您可以將“分區”重命名為所需的任何內容,我將為“ partCollection”之類的內容提供擔保
void,return,public,private,static,class等,這些都是關鍵字。
其次 ,TopicPartition和您在此處引用的方法是TopicPartition類的構造函數,它需要2個參數: String topic
和int partition
,而不僅僅是一個方法。
構造函數是在實例化類(例如使用new
關鍵字創建對象)時調用的方法。
所以給你一個更詳細的例子:
List<TopicPartition> 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.