亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在不使用 Java 類的類的情況下調用該方法?

如何在不使用 Java 類的類的情況下調用該方法?

慕村9548890 2024-01-25 21:27:00
在 OOP 中,我了解到我們可以通過使用方法的類來調用方法。例如:Person person = new Person();person.methodA(); // calling the method in person class基于ListView (鏈接)的javafx文檔 ,getSelectionModel()是ListView類的方法(可以工作)。但 selectedItemProperty() 方法是 SelectionModel 的類(鏈接)如何在不使用 SelectionModel 類的情況下調用 selectedItemProperty() 方法?那么這個addListener方法來自哪個類呢?myListView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TodoItem>() {///  blah blah blah}});
查看完整描述

2 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

MultipleSelectionModel(?link?) 擴展了SelectionModel(?link?),其中selectedItemProperty()實現了該方法。

selectedItemProperty()返回一個ReadOnlyObjectProperty(?link?) 實例,該實例擴展了ObservableValue(?link?),該方法來自該addListener()實例。

至于如何調用這些方法——這就是繼承的工作原理。子類 (?MultipleSelectionModel) 繼承其超類 ( ) 的所有屬性SelectionModel。因此,您定義的任何方法都SelectionModel可以針對MultipleSelectionModel實例進行調用。



查看完整回答
反對 回復 2024-01-25
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

當您調用時,ListView#getSelectionModel()您將獲得一個對象,該對象是 的實例SelectionModel- 更具體地說,是 的實例MultipleSelectionModel。由于您現在有了一個實例,因此MultipleSelectionModel您可以調用該類中存在的方法,包括繼承的方法。這意味著您可以執行以下操作:


listView.getSelectionModel().selectedItemProperty().addListener(yourChangeListener);

這相當于以下內容:


MultipleSelectionModel<T> sModel = listView.getSelectionModel();

ReadOnlyObjectProperty<T> selectedItemProp = sModel.selectedItemProperty();

selectedItemProp.addListener(yourChangeListener);

正如您所看到的,您正在使用涉及的每個對象的類。前者稱為方法鏈,只是簡寫。


查看完整回答
反對 回復 2024-01-25
  • 2 回答
  • 0 關注
  • 215 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號