الاستخدام:
(اكتب مثيلًا متغيرًا للفئة | الواجهة)
تأثير:
يتم استخدام عامل تشغيل المثيل لتحديد ما إذا كان الكائن السابق هو مثيل للفئة التالية، أو فئتها الفرعية أو فئة التنفيذ. إذا كان الأمر كذلك، قم بإرجاع صحيح، وإلا قم بإرجاع خطأ.
يلاحظ:
・نوع وقت الترجمة للمعامل الموجود أمام مثيل هو إما نفس الفئة التالية، أو لديه علاقة وراثة بين الوالدين والطفل مع الفئة التالية، وإلا سيحدث خطأ في الترجمة.
مثال بسيط:
انسخ رمز الكود كما يلي:
/**
* مثيل المشغل
* @ المؤلف المسؤول
*
*/
فئة عامة TestInstanceof {
public static void main(String[] args) {
// استخدم فئة الكائن عند الإعلان عن الترحيب، ثم نوع الترحيب المترجم هو Object
// فئة الكائن هي الفئة الأصلية لجميع الفئات، ولكن النوع الفعلي للترحيب هو String
كائن مرحبا = "مرحبا";
// String هي فئة فرعية من الكائن ويمكنها تنفيذ عملية مثيلة وإرجاع صحيح
System.out.println("هل السلسلة مثيل لفئة الكائن:"
+ (مرحبًا مثيل الكائن));
//حقيقي
System.out.println("هل السلسلة مثيل لسلسلة:"
+ (مرحبًا مثيل السلسلة));
//خطأ شنيع
System.out.println("هل السلسلة مثيل لفئة الرياضيات:"
+ (مرحبًا مثيل الرياضيات));
// تنفذ السلسلة الواجهة القابلة للمقارنة، لذا فهي تُرجع صحيحًا
System.out.println("هل السلسلة مثيل للفئة القابلة للمقارنة:"
+(مرحبا مثيل للمقارنة));
/**
* السلسلة ليست فئة الرياضيات ولا الفئة الأصلية لفئة الرياضيات، لذلك يتم تجميع التعليمة البرمجية التالية بشكل غير صحيح
*/
//سلسلة أ = "مرحبا";
//System.out.println("هل السلسلة مثيل لفئة الرياضيات:"
// + (مثال للرياضيات));
}
}
نتائج التشغيل:
انسخ رمز الكود كما يلي:
ما إذا كانت السلسلة هي مثيل لفئة الكائن: صحيح
ما إذا كانت السلسلة هي مثيل لسلسلة: صحيح
ما إذا كانت السلسلة عبارة عن مثيل لفئة الرياضيات: خطأ
ما إذا كانت السلسلة هي مثيل للفئة القابلة للمقارنة: صحيح
عادةً، قبل إجراء تحويل النوع القسري، يتم تحديد ما إذا كان الكائن السابق هو مثيل للكائن الأخير وما إذا كان التحويل يمكن أن يكون ناجحًا، وبالتالي ضمان قوة الكود.