تعيين متغير من مجموعة مباشرة إلى قائمة من المتغيرات في جافا

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

  •  21-08-2019
  •  | 
  •  

سؤال

لدي طريقة جافا التي بإرجاع صفيف من الزوجي.وأود أن تخزين هذه القيم في المتغيرات الفردية في وظيفة الدعوة.هل هناك طريقة ذكية للقيام بذلك في جاوة.

أنا يمكن أن يكتب مثل هذا:

double[] returnValues = calculateSomeDoubles();
double firstVar  = returnValues[0];
double secondVar = returnValues[1];

أنا أتساءل فقط إذا كان هناك طريقة ضغط هذا وصولا إلى سطر واحد ؟ شيء من هذا القبيل:

(firstVar, secondVar) = calculateSomeDoubles();

هذا النوع من الشيء السهل جدا عندما البرمجة, ولكن أقوى كتابة جافا يعني أنه ربما لم يكن ممكنا.

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

المحلول

وأساسا لا، هذا غير ممكن.

وسيكون لديك لإرجاع الكائن الذي يحتوي على القيم.

MyObject myObject = calculateMyObject();

نصائح أخرى

الطريقة الوحيدة التي سوف تكون باستخدام التفكير ، منح تعرف مقدما كيف العديد من العناصر طريقة "calculateSomeDouble" سيعود.

الاختلاف من هذا سوف تكون هناك حاجة.ولكن كما ترى هناك أكثر من رمز.

وبالتالي فإن السؤال الذي يطرح هو ؟ هل تريد هذا الآلي الأشياء ؟ أو لتوفير الوقت النامية ( تجنب الحاجة إلى نسخ/لصق ) ?

إذا كنت ترغب في أتمتة بعض المهام ( مثل تعبئة كائن في وقت التشغيل ) ثم يستحق لا انعكاس الاتصال والكتابة الأسلوب.

سوف تحتاج إلى تعيين قيمة بدلا من طباعته.

العميل الاتصال يجب أن تبدو

 SomeUtility.fill( myObject , withDoublesFromMethod() );

وعندما لم أن تحصل على 2 القيم يتضاعف مرة أخرى يمكنك الاتصال الخاصة بك دعوة usig ميثود بالرجوع

void methode(double[] array)

ويمكنك تقديم مجموعة بطول 2 ووضع القيم iside للميثود.

وأو كنت إرجاع مجموعة إذا القيم التي يتم إرجاعها يمكن أن تتغير.

List methode()

والأولى أ م لا صديق القيم عودته مثل

double[] methode()

عند استخدام قوائم أو مجموعات من ميثود هو التمديد ك ثابتة كما يمكنك التعامل مع المصفوفات. يمكنك إعادة استخدام أفضل للميثود في مشاريع أخرى.

وقائي الاول غريزة هو السؤال الدافع الخاص للقيام بشيء من هذا القبيل. إذا كان لديك مجموعة من الزوجي ذات الصلة في البرنامج، لماذا لا يمكنك تخزينها في قائمة؟

إذا كان يمكنك أن تفعل شيئا من هذا القبيل:

List<Double> myVars = Arrays.asList(calculateSomeDoubles());

ولكن إذا كان يجب تخزينها في المتغيرات الفردية فإنه لا يمكن أن يتم نظيفة في سطر واحد. أنصحك <م> لا استخدام بعض الحلول انعكاس على أساس أن المقترحة. من المرجح أن يكون أفضل بكثير لمجرد كتابة المهام الخاصة بك في عدة أسطر كما اقترحتم أولا.

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