ในjava.util.functionแพ็คเกจของ Java 8 เรามี:
- ฟังก์ชัน : รับหนึ่งอาร์กิวเมนต์สร้างผลลัพธ์เดียว
- ผู้บริโภค : รับหนึ่งอาร์กิวเมนต์สร้างอะไรขึ้นมา
- ผู้จัดจำหน่าย : ไม่ต้องโต้เถียงสร้างผลลัพธ์เดียว
- ... : กรณีอื่น ๆ ที่จัดการแบบดั้งเดิมอาร์กิวเมนต์ 2 ข้อ ฯลฯ ...
แต่ฉันต้องจัดการกับ " ไม่มีข้อโต้แย้งสร้างอะไร "
ไม่มีอะไรสำหรับสิ่งนี้java.util.functionnalค่ะ
ดังนั้นคำถามคือ:
ชื่อ ' ฟังก์ชั่นที่ไม่โต้แย้งและไม่ส่งคืนอะไร '?
ใน Java 8 นิยามของมันจะเป็น:
@FunctionalInterface
public interface InsertANameHere {
void execute();
}
ผู้บริหารอยู่แล้วและมีวัตถุประสงค์อื่น: " วัตถุที่ดำเนินการส่งงานที่เรียกใช้งานได้ " ลายเซ็นไม่ตรงกัน ( execute(Runnable):void) และไม่ได้เป็นอินเทอร์เฟซที่ใช้งานได้
มีRunnableอยู่ แต่มีการเชื่อมโยงอย่างมากกับบริบทเธรด:
- แพคเกจไม่
java.langjava.util.function - สถานะ javadoc: " อินเทอร์เฟซที่เรียกใช้ควรนำมาใช้โดยคลาสใด ๆ ที่อินสแตนซ์ตั้งใจที่จะดำเนินการโดยเธรด "
- ชื่อ "Runnable" แนะนำให้เรียกใช้รหัสบางอย่างภายในเธรด
Runnableนั้นล้าสมัยแล้ว ณ จุดนี้เนื่องจาก Runnable ยังถูกใช้โดยคลาสอื่นมากกว่าThread( Executorตัวอย่าง)
Runnables สามารถเป็นได้.run()โดยThreads เท่านั้น ในความเป็นจริงพวกเขามักใช้เพื่อวัตถุประสงค์ตรงตามที่อธิบายไว้ในคำถาม
java.util.function แพ็คเกจ