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