জাভা পদ্ধতিতে স্বাক্ষরে "পরম"?


112

সি # তে, আপনি যদি কোনও পদ্ধতিটির একটি অনির্দিষ্ট পরামিতি থাকতে চান তবে আপনি পদ্ধতিটির স্বাক্ষরে একটি চূড়ান্ত প্যারামিটার তৈরি করতে পারেন paramsযাতে পদ্ধতি প্যারামিটারটি অ্যারের মতো দেখায় তবে পদ্ধতিটি ব্যবহার করে প্রত্যেককে সেই ধরণের যতগুলি পরামিতি পাস করতে দেয় কলার যেমন চায়

আমি মোটামুটি নিশ্চিত যে জাভা অনুরূপ আচরণকে সমর্থন করে তবে আমি কীভাবে এটি করব তা খুঁজে বের করতে পারি না।

উত্তর:


194

জাভাতে এটিকে ভারাগস বলা হয় এবং সিনট্যাক্সটি নিয়মিত প্যারামিটারের মতো লাগে তবে টাইপের পরে একটি উপবৃত্ত ("...") সহ:

public void foo(Object... bar) {
    for (Object baz : bar) {
        System.out.println(baz.toString());
    }
}

ভারারগ প্যারামিটারটি সর্বদা পদ্ধতি স্বাক্ষরের শেষ প্যারামিটার হতে হবে এবং অ্যাক্সেস করা হয় যেন আপনি সেই ধরণের একটি অ্যারে পেয়ে থাকেন (যেমন Object[]এই ক্ষেত্রে)।


3
ধন্যবাদ যখন আমি অন্য কিছু সন্ধান করছিলাম তখন বিজারলি নিজেই এটি খুঁজে পেয়েছিলাম এবং নিজেই প্রশ্নের উত্তর দিতে এখানে আসছিলাম।
ওমর কুহেজি

11

এটি জাভাতে কৌশলটি করবে

public void foo(String parameter, Object... arguments);

আপনি তিনটি পয়েন্ট যোগ আছে ...এবং varagrপ্যারামিটার পদ্ধতি স্বাক্ষর গত হতে হবে।


3

পূর্ববর্তী উত্তরে যেমন লেখা আছে, এটি হয় varargsএবং ellipsis( ... ) দিয়ে ঘোষিত হয়

তদতিরিক্ত , আপনি হয় মান প্রকার এবং / অথবা রেফারেন্স ধরণ বা উভয় মিশ্র (গুগল অটোবক্সিং ) পাস করতে পারেন । printArgsAlternateনীচে পদ্ধতিটির সাথে নীচে দেখানো হিসাবে আপনি অ্যারে হিসাবে পদ্ধতি প্যারামিটারটি ব্যবহার করতে পারেন ।

ডেমো কোড

public class VarargsDemo {

    public static void main(String[] args) {
        printArgs(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
        printArgsAlternate(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
    }

    private static void printArgs(Object... arguments) {
        System.out.print("Arguments: ");
        for(Object o : arguments)
            System.out.print(o + " ");

        System.out.println();
    }

    private static void printArgsAlternate(Object... arguments) {
        System.out.print("Arguments: ");

        for(int i = 0; i < arguments.length; i++)
            System.out.print(arguments[i] + " ");

        System.out.println();
    }

}

আউটপুট

Arguments: 3 true Hello! true 25.3 a X 
Arguments: 3 true Hello! true 25.3 a X 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.