คำถามติดแท็ก reification

1
Scala: TypeTag คืออะไรและฉันจะใช้ได้อย่างไร
สิ่งที่ฉันรู้เกี่ยวกับ TypeTags ก็คือพวกมันเข้ามาแทนที่ Manifests ข้อมูลบนอินเทอร์เน็ตหายากและไม่ได้ให้ความรู้สึกที่ดีกับฉันในเรื่องนี้ ดังนั้นฉันยินดีหากมีคนแบ่งปันลิงก์ไปยังเนื้อหาที่มีประโยชน์บน TypeTags รวมถึงตัวอย่างและกรณีการใช้งานที่เป็นที่นิยม ยินดีต้อนรับคำตอบและคำอธิบายโดยละเอียด

4
การทำให้เป็นจริงคืออะไร?
ฉันรู้ว่า Java ใช้ตัวแปรหลากหลาย (Generics) กับการลบ ฉันเข้าใจว่าการลบคืออะไร ฉันรู้ว่า C # ใช้ตัวแปรความแปรปรวนร่วมกับการทำให้เป็นจริง ฉันรู้ว่าสามารถทำให้คุณเขียน public void dosomething(List<String> input) {} public void dosomething(List<Int> input) {} หรือว่าคุณสามารถรู้ตอนรันไทม์พารามิเตอร์ประเภทของบางประเภทพารามิเตอร์คืออะไร แต่ฉันไม่เข้าใจว่ามันคืออะไร ประเภท reified คืออะไร? ค่า reified คืออะไร? จะเกิดอะไรขึ้นเมื่อมีการแก้ไขประเภท / ค่า
163 c#  generics  reification 

13
เหตุใดฉันจึงต้องสนใจว่า Java ไม่ได้มีการ reified generics
สิ่งนี้เกิดขึ้นเป็นคำถามที่ฉันถามในการสัมภาษณ์เมื่อเร็ว ๆ นี้เนื่องจากมีบางสิ่งที่ผู้สมัครต้องการเห็นเพิ่มเข้าไปในภาษา Java โดยทั่วไปมักถูกระบุว่าเป็นความเจ็บปวดที่ Java ไม่ได้ทำให้เกิดชื่อสามัญแต่เมื่อถูกผลักดันผู้สมัครไม่สามารถบอกฉันได้ว่าสิ่งต่างๆที่เขาสามารถทำได้คือสิ่งเหล่านี้ เห็นได้ชัดว่าเนื่องจากชนิดดิบเป็นสิ่งที่อนุญาตใน Java (และการตรวจสอบที่ไม่ปลอดภัย) จึงเป็นไปได้ที่จะล้มล้าง generics และลงเอยด้วยสิ่งList<Integer>นั้น (ตัวอย่าง) มีStrings อยู่จริง สิ่งนี้ชัดเจนว่าเป็นไปไม่ได้คือข้อมูลประเภท reified; แต่ต้องมีมากกว่านี้ ! ผู้คนสามารถโพสต์ตัวอย่างของสิ่งที่พวกเขาอยากทำจริงๆได้หรือไม่มี reified generics ฉันหมายถึงเห็นได้ชัดว่าคุณสามารถหาประเภทของ a Listat runtime ได้ แต่คุณจะทำอย่างไรกับมัน? public <T> void foo(List<T> l) { if (l.getGenericType() == Integer.class) { //yeah baby! err, what now? แก้ไข : การอัปเดตอย่างรวดเร็วสำหรับสิ่งนี้เนื่องจากคำตอบดูเหมือนส่วนใหญ่จะเกี่ยวข้องกับความจำเป็นในการส่งClassเป็นพารามิเตอร์ (ตัวอย่างEnumSet.noneOf(TimeUnit.class)) ฉันถูกมองมากขึ้นสำหรับบางสิ่งบางอย่างตามสายของที่นี้ก็เป็นไปไม่ได้ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.