كيفية استيراد فئتين بنفس الاسم في حزم مختلفة؟

StackOverflow https://stackoverflow.com/questions/3731125

  •  03-10-2019
  •  | 
  •  

سؤال

أريد استيراد هاتين الفئتين ، كلاهما اسمه Query - واحد أ JDO الطبقة ، والآخر أ JPA فئة ، لاستخدامها في طرق مختلفة في نفس الفئة.

import javax.jdo.Query;
import javax.persistence.Query;

هل هناك طريقة لاستيراد كلاهما في نفس الوقت في الجزء العلوي من الملف؟

هل كانت مفيدة؟

المحلول

أخشى ، لا. لكن لا يتعين عليك استيراد الفصل لاستخدامه: ما عليك سوى الرجوع إلى إحدى الفصول باسمها الكامل ، مثل

javax.jdo.Query query = getJDOQuery();
query.doSomething();

ثم يمكنك استيراد آخر بدون تصادمات الاسم.

راجع للشغل ، في بعض الأحيان إذا بدأت في الحصول على الكثير من مثل هذه التصادمات في صفك ، فهو تلميح دقيق لإعادة إنشاء: تقسيم وظائف فئة كبيرة واحدة بين العديد من الصغار.

نصائح أخرى

الغرض الوحيد من import البيان هو إنشاء الاسم المستعار الاختزال لاسم مؤهل بالكامل. إذا سُمح لك بالاستيراد على حد سواء ، فستخلق غموضًا يتطلب حل الاستدلال على النوع لحلها ، وجعل الكود صعبًا للغاية.

الإجابات الحالية صحيحة. أود أن أوضح لك كيف يمكن التعامل مع تعارضات اسم الفصل في Kotlin (مستندات).

إذا كان هناك اشتباك اسم ، فيمكننا إزالة الغموض باستخدام as الكلمة الرئيسية لإعادة تسمية كيان الاشتباك محليا:

import javax.jdo.Query // Query is accessible
import javax.persistence.Query as jpaQuery // jpaQuery stands for 'javax.persistence.Query'

هذا سبب +1 لماذا يجب أن تفكر كوتلين لمشروعك القادم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top