Generics ใน Java คืออะไร? - คู่มือสำหรับผู้เริ่มต้น



บทความเกี่ยวกับ Generics ใน Java นี้จะให้ข้อมูลเชิงลึกสั้น ๆ เกี่ยวกับ java generics คืออะไรและประเภทต่างๆพร้อมกับตัวอย่าง

ลองพิจารณาตัวอย่างที่คุณต้องทำรายการสิ่งมีชีวิตในท้องถิ่น ไม่สำคัญว่าสิ่งนั้นจะเป็นมนุษย์สัตว์หรือพืช สิ่งที่สำคัญทั้งหมดคือสิ่งมีชีวิต ในกรณีนี้คุณจะจัดกลุ่มทั้งหมดเป็น 'สิ่งมีชีวิต' และไม่จัดหมวดหมู่ ในทำนองเดียวกันเมื่อคุณต้องจัดเก็บข้อมูลบางอย่างสิ่งที่สำคัญสำหรับคุณคือเนื้อหาไม่ใช่ประเภทข้อมูลและนั่นคือที่ที่คุณใช้ Generics Generics ใน เป็นคุณลักษณะภาษาที่อนุญาตให้ใช้ประเภทและวิธีการทั่วไป

ด้านล่างนี้เป็นรายการหัวข้อที่ฉันจะกล่าวถึงในบทความนี้:





คำสั่ง java เพื่อสิ้นสุดโปรแกรม

Generics ใน Java คืออะไร?

Generics เป็นคำที่แสดงถึงชุดคุณสมบัติของภาษาที่เกี่ยวข้องกับคำจำกัดความและการใช้ประเภทและวิธีการทั่วไป วิธีการทั่วไปของ Java แตกต่างจากชนิดข้อมูลและวิธีการทั่วไป ก่อน Generics เราใช้ไฟล์ เพื่อจัดเก็บวัตถุประเภทใด ๆ เช่น ไม่ใช่ทั่วไป . ตอนนี้ Generics บังคับใช้ โปรแกรมเมอร์เพื่อจัดเก็บวัตถุประเภทเฉพาะ

ตอนนี้คุณรู้แล้วว่า Generics ใน Java คืออะไรมาดูกันว่าทำไมคุณถึงต้องการ Java Generics



ทำไมต้องเป็น Java Generics

หากคุณดูที่ไฟล์ จากนั้นคุณจะสังเกตได้ว่าคลาสส่วนใหญ่ใช้พารามิเตอร์ / อาร์กิวเมนต์ประเภท Object โดยทั่วไปในรูปแบบนี้พวกเขาสามารถใช้ Java ประเภทใดก็ได้เป็นอาร์กิวเมนต์และส่งคืนอ็อบเจ็กต์หรืออาร์กิวเมนต์เดียวกัน พวกเขาเป็นหลัก ไม่เหมือนกัน เช่นไม่ใช่ประเภทที่คล้ายกัน

FrameworkHierarchy - Generics ใน Java - Edureka

บางครั้งในแอปพลิเคชัน Java ประเภทข้อมูลของอินพุตไม่ได้รับการแก้ไข อินพุตสามารถเป็นไฟล์ จำนวนเต็ม , ถึง ลอย หรือ . เพื่อกำหนดอินพุตให้กับไฟล์ ประเภทข้อมูลที่ถูกต้องจะต้องดำเนินการตรวจสอบก่อน ในแนวทางดั้งเดิมหลังจากรับอินพุตแล้วประเภทข้อมูลของอินพุตจะถูกตรวจสอบจากนั้นจะถูกกำหนดให้กับตัวแปรของประเภทข้อมูลที่ถูกต้อง เมื่อใช้ตรรกะนี้ความยาวของรหัสและเวลาในการดำเนินการจะเพิ่มขึ้น เพื่อหลีกเลี่ยงปัญหานี้ มีการนำ Generics . เมื่อคุณใช้ Generics พารามิเตอร์ในโค้ดจะถูกตรวจสอบในเวลาคอมไพล์โดยอัตโนมัติและตั้งค่าประเภทข้อมูลตามค่าเริ่มต้น ดังนั้นนี่คือที่ที่คุณต้องการแนวคิดเรื่อง generics ใน Java



เมื่อคุณได้รับข้อมูลเชิงลึกเกี่ยวกับ Generics แล้วเรามาดูวิธีการต่างๆกันGenerics สามารถใช้กับซอร์สโค้ดได้.

ประเภทของ Java Generics

Generics สามารถนำไปใช้กับ Java ได้ 4 วิธีและมีดังนี้:

  1. คลาสประเภททั่วไป
  2. อินเทอร์เฟซทั่วไป
  3. วิธีการทั่วไป
  4. ตัวสร้างทั่วไป

ตอนนี้เรามาทำความเข้าใจกันว่า Generics สามารถนำไปใช้กับ type class ในเชิงลึกได้อย่างไร

1. คลาสประเภททั่วไป

คลาสจะถูกกล่าวว่าเป็น Generic หากมีการประกาศตัวแปรประเภทหนึ่งหรือหลายตัว ประเภทตัวแปรเหล่านี้เรียกว่าพารามิเตอร์ประเภทของ . เรามาทำความเข้าใจกับตัวอย่างนี้กัน ในตัวอย่างด้านล่างฉันจะสร้างคลาสที่มีคุณสมบัติเดียว x และประเภทของคุณสมบัติคือวัตถุ

class Genericclass {private Object x public void set (Object x) {this.x = x} public Object get () {return x}}

ที่นี่เมื่อคุณเริ่มต้นคลาสด้วยประเภทหนึ่งแล้วควรใช้คลาสกับประเภทนั้น ๆ เท่านั้น เช่น. หากคุณต้องการให้อินสแตนซ์หนึ่งของคลาสเก็บค่าไว้ x ประเภท ‘ สตริง 'แล้วโปรแกรมเมอร์ควรตั้งค่าและรับเพียง ประเภท. เนื่องจากฉันได้ประกาศประเภทคุณสมบัติเป็น Object จึงไม่มีวิธีบังคับใช้ข้อ จำกัด นี้ โปรแกรมเมอร์สามารถตั้งค่าออบเจ็กต์ใด ๆ และสามารถคาดหวังประเภทค่าตอบแทนจาก รับวิธีการ เนื่องจาก Java ทุกประเภทเป็นประเภทย่อยของ ชั้นเรียน.

ในการบังคับใช้ข้อ จำกัด ประเภทนี้เราสามารถใช้ generics ดังต่อไปนี้:

คลาส Genericclass {// T ย่อมาจาก 'Type' private T x public void set (T x) {this.x = x} public T get () {return x}}

ตอนนี้คุณสามารถมั่นใจได้ว่าจะไม่ใช้คลาสผิดประเภท ตัวอย่างง่ายๆของ' Genericclass ” มีลักษณะดังที่แสดงด้านล่าง:

Genericclass instance = new Genericclass () instance.set ('Edureka') instance.set (10) // สิ่งนี้จะเพิ่มข้อผิดพลาดเวลาคอมไพล์

นั่นคือวิธีการทำงาน นี้การเปรียบเทียบเป็นจริงสำหรับอินเทอร์เฟซเช่นกัน มาดูตัวอย่างอย่างรวดเร็วเพื่อทำความเข้าใจว่าข้อมูลประเภท generics สามารถใช้ในอินเทอร์เฟซใน java ได้อย่างไร

2. อินเทอร์เฟซทั่วไป

อัน หมายถึงประเภทข้อมูลนามธรรม พวกเขาอนุญาต ที่จะจัดการโดยอิสระจากรายละเอียดของการเป็นตัวแทน นอกจากนี้ยังสร้างลำดับชั้นใน ภาษา เรามาทำความเข้าใจกันว่าประเภททั่วไปสามารถใช้กับอินเทอร์เฟซใน Java ได้อย่างไร

วิธีการย้อนกลับตัวเลขใน python
// อินเทอร์เฟซนิยามอินเทอร์เฟซทั่วไป GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // คลาสที่ใช้คลาสอินเทอร์เฟซทั่วไป Genericclass ใช้ GenericInterface {public Integer PerformExecution (String x) {// รหัสการดำเนินการ} Public String ReverseExecution ( จำนวนเต็ม x) {// รหัสการดำเนินการ}}

ฉันหวังว่าคุณจะเข้าใจว่า Generics สามารถนำไปใช้กับประเภทคลาสและอินเทอร์เฟซได้อย่างไร ตอนนี้มาเจาะลึกบทความนี้และทำความเข้าใจว่ามีประโยชน์อย่างไรสำหรับวิธีการและตัวสร้าง

3. วิธีการทั่วไป

วิธีการทั่วไปคล้ายกับคลาสทั่วไปมาก ซึ่งแตกต่างกันเพียงด้านเดียวที่ ข้อมูลขอบเขตหรือประเภทอยู่ในวิธีการเท่านั้น วิธีการทั่วไปแนะนำพารามิเตอร์ประเภทของตนเอง

มาทำความเข้าใจกับตัวอย่าง ด้านล่างนี้เป็นตัวอย่างของวิธีการทั่วไปที่สามารถใช้เพื่อค้นหาการเกิดขึ้นทั้งหมดของพารามิเตอร์ประเภทในรายการตัวแปร

public static int countAllOccurrences (รายการ T [], T element) {int count = 0 if (element == null) {for (T listElement: list) if (listElement == null) count ++} else {สำหรับ (T listElement: list ) if (element.equals (listElement)) count ++} return count}

หากคุณผ่านรายการ สตริงที่จะค้นหาด้วยวิธีนี้มันจะทำงานได้ดี แต่ถ้าคุณพยายามค้นหา Number ในรายการ String จะทำให้เกิดข้อผิดพลาดเวลาคอมไพล์

การเปรียบเทียบนี้คล้ายกับตัวสร้างเช่นกัน เรามาดูตัวอย่างสำหรับตัวสร้างทั่วไปและทำความเข้าใจวิธีการทำงาน

4. ตัวสร้างทั่วไป

เพื่อสร้าง คือบล็อกของโค้ดที่เริ่มต้นอ็อบเจ็กต์ที่สร้างขึ้นใหม่ ก ผู้สร้าง คล้ายกับวิธีการอินสแตนซ์ใน J ava แต่ไม่ใช่วิธีการเนื่องจากไม่มีประเภทการคืนสินค้า ตัวสร้าง มีชื่อเดียวกันกับคลาสและมีลักษณะเช่นนี้ใน J ava รหัส. ตอนนี้เรามาดูตัวอย่างและทำความเข้าใจวิธีการทำงาน

class Dimension {private T length private T width private T height // Generic constructor public Dimension (T length, T width, T height) {super () this.length = length this.width = width this.height = height}}

ในตัวอย่างข้างต้นตัวสร้างของคลาส Dimension มีข้อมูลประเภท ดังนั้นคุณสามารถมีอินสแตนซ์ของมิติที่มีแอตทริบิวต์ทั้งหมดเป็นประเภทเดียวเท่านั้น นี่คือวิธีที่คุณสามารถใช้ตัวสร้างประเภท generics ฉันหวังว่าคุณจะเข้าใจประเภทของ generics ใน Java

ตอนนี้เรามาดูข้อดีของ Generics ใน Java กัน

ข้อดีของ Generics ใน Java

1. Code Reusability

คุณสามารถสร้างกลยุทธ์หรือคลาสหรือไฟล์ ครั้งเดียวและใช้ได้ทุกประเภทหรือทุกวิธีที่คุณต้องการ

2. ไม่จำเป็นต้องมีการแคสต์ประเภทส่วนบุคคล

โดยทั่วไปคุณกู้คืนข้อมูลจาก ทุกครั้งคุณต้องพิมพ์แคสต์ การพิมพ์ในงานการกู้คืนแต่ละครั้งถือเป็นไมเกรนที่สำคัญ เพื่อกำจัดแนวทางดังกล่าวจึงมีการนำยาชื่อสามัญมาใช้

3. การใช้อัลกอริทึมที่ไม่ใช่แบบทั่วไป

ข้อมูลในวิทยาศาสตร์คืออะไร

สามารถคำนวณอัลกอริทึมที่ทำงานกับรายการประเภทต่างๆที่ปลอดภัยได้เช่นกัน

นั่นคือทั้งหมดที่เกี่ยวกับข้อดีของ Java Generics ด้วยเหตุนี้เราจึงมาถึงตอนท้ายของบทความเกี่ยวกับ Generics ใน Java ฉันหวังว่าคุณจะพบว่ามันให้ข้อมูลและช่วยคุณในการทำความเข้าใจ Java Generics

ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก เราพร้อมที่จะช่วยเหลือคุณในทุกขั้นตอนในการเดินทางของคุณสำหรับการเป็นนอกเหนือจากคำถามสัมภาษณ์ java นี้เรามาพร้อมกับหลักสูตรที่ออกแบบมาสำหรับนักเรียนและมืออาชีพที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของ“ Generics in Java ” บทความ และเราจะติดต่อกลับโดยเร็วที่สุด