প্যারামিটারের একটি পরিবর্তনশীল সংখ্যার অনুমতি দেবে এমন কোনও পদ্ধতি ঘোষণা করা কি সম্ভব?
সংজ্ঞাটিতে ব্যবহৃত প্রতীকবাদটি কী বোঝায় যে পদ্ধতিটি একটি পরিবর্তনশীল সংখ্যক পরামিতিগুলির অনুমতি দেয়?
উত্তর: varargs
প্যারামিটারের একটি পরিবর্তনশীল সংখ্যার অনুমতি দেবে এমন কোনও পদ্ধতি ঘোষণা করা কি সম্ভব?
সংজ্ঞাটিতে ব্যবহৃত প্রতীকবাদটি কী বোঝায় যে পদ্ধতিটি একটি পরিবর্তনশীল সংখ্যক পরামিতিগুলির অনুমতি দেয়?
উত্তর: varargs
উত্তর:
এটাই সঠিক. আপনি তার সম্পর্কে আরও জানতে পারেন ভারাক্রমে ওরেটল গাইডে ।
এখানে একটি উদাহরণ:
void foo(String... args) {
for (String arg : args) {
System.out.println(arg);
}
}
যাকে বলা যেতে পারে
foo("foo"); // Single arg.
foo("foo", "bar"); // Multiple args.
foo("foo", "bar", "lol"); // Don't matter how many!
foo(new String[] { "foo", "bar" }); // Arrays are also accepted.
foo(); // And even no args.
Object...
।
varargs.length
Variable number of arguments
কোনও পদ্ধতিতে পরিবর্তনশীল সংখ্যক আর্গুমেন্ট পাস করা সম্ভব। তবে কিছু বিধিনিষেধ রয়েছে:
এই বিধিনিষেধগুলি বোঝার জন্য, নিম্নলিখিত কোড স্নিপেটে, পদ্ধতিটি বিবেচনা করুন, পূর্ণসংখ্যার তালিকার বৃহত্তম সংখ্যাকে প্রত্যাবর্তনের জন্য ব্যবহৃত হয়েছিল:
private static int largest(int... numbers) {
int currentLargest = numbers[0];
for (int number : numbers) {
if (number > currentLargest) {
currentLargest = number;
}
}
return currentLargest;
}
উত্স ওরাকল সার্টিফাইড সহযোগী জাভা এসই 7 প্রোগ্রামার স্টাডি গাইড 2012
বিভিন্ন ধরণের আর্গুমেন্টের জন্য, এখানে 3-বিন্দু রয়েছে :
public void foo(Object... x) {
String myVar1 = x.length > 0 ? (String)x[0] : "Hello";
int myVar2 = x.length > 1 ? Integer.parseInt((String) x[1]) : 888;
}
তারপরে ফোন করুন
foo("Hii");
foo("Hii", 146);
সুরক্ষার জন্য, এই জাতীয় ব্যবহার করুন:
if (!(x[0] instanceof String)) { throw new IllegalArgumentException("..."); }
এই পদ্ধতির মূল অপূর্ণতা হ'ল alচ্ছিক পরামিতিগুলি যদি বিভিন্ন ধরণের হয় তবে আপনি স্ট্যাটিক ধরণের চেকিং হারাবেন। দয়া করে আরও ভিন্নতা দেখুন ।
হ্যাঁ ... জাভা 5 থেকে: http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
হ্যাঁ জাভা vargs
পদ্ধতি প্যারামিটারে অনুমতি দেয় ।
public class Varargs
{
public int add(int... numbers)
{
int result = 1;
for(int number: numbers)
{
result= result+number;
} return result;
}
}