簡體   English   中英

Java-了解方法簽名

[英]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 topicint 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM