ฉันกำลังมองหาวิธีที่จะผ่านวิธีการโดยอ้างอิง ฉันเข้าใจว่า Java ไม่ผ่านวิธีการเป็นพารามิเตอร์อย่างไรก็ตามฉันต้องการได้รับทางเลือก
ฉันได้รับแจ้งว่าอินเทอร์เฟซเป็นทางเลือกในการส่งผ่านเมธอดเป็นพารามิเตอร์ แต่ฉันไม่เข้าใจว่าอินเตอร์เฟสสามารถทำหน้าที่เป็นวิธีโดยอ้างอิงได้อย่างไร หากฉันเข้าใจอย่างถูกต้องอินเทอร์เฟซเป็นชุดวิธีนามธรรมที่ไม่ได้กำหนดไว้ ฉันไม่ต้องการส่งอินเทอร์เฟซที่จำเป็นต้องกำหนดทุกครั้งเนื่องจากวิธีการต่าง ๆ สามารถเรียกวิธีเดียวกันด้วยพารามิเตอร์เดียวกัน
สิ่งที่ฉันต้องการทำให้สำเร็จคือสิ่งที่คล้ายกับสิ่งนี้:
public void setAllComponents(Component[] myComponentArray, Method myMethod) {
for (Component leaf : myComponentArray) {
if (leaf instanceof Container) { //recursive call if Container
Container node = (Container) leaf;
setAllComponents(node.getComponents(), myMethod);
} //end if node
myMethod(leaf);
} //end looping through components
}
เรียกใช้เช่น:
setAllComponents(this.getComponents(), changeColor());
setAllComponents(this.getComponents(), changeSize());