কম্পিউটার

কেন @SafeVarargs জাভা 9 এ প্রয়োজন?


The varargs অ্যারে-টাইপকে অবলম্বন না করেই পরিবর্তনশীল সংখ্যক আর্গুমেন্ট সহ পদ্ধতি তৈরির সুবিধার্থে জাভাতে কার্যকারিতা চালু করা হয়েছে একই পদ্ধতির প্যারামিটার বা ওভারলোডেড সংস্করণ।

জাভা 9 সংস্করণের আগে, যদি vararg পদ্ধতি জেনারিক এর সাথে ব্যবহার করা হয় , তারপর একটি সতর্কতা বার্তা আছে৷ . যদিও সমস্ত পদ্ধতি গাদা দূষণ তৈরি করে না , কম্পাইলার সতর্কতা দেখায় জেনেরিকের সাথে ব্যবহৃত সমস্ত ভারার্গ পদ্ধতির জন্য। এই কারণেই @SafeVarargs এই সতর্কতাগুলি এড়াতে জাভা 9 সংস্করণে ধারণাটি যুক্ত করা হয়েছিল। যদি আমরা এই টীকা যোগ করি, তাহলে কম্পাইলার এই সতর্কতাগুলো বন্ধ করে দেয়।

আমরা নিচের কমান্ডটি ব্যবহার করে কোড কম্পাইল করতে পারি

javac -Xlint:unchecked SafeVarargsTest1.java

নীচের উদাহরণে, কম্পাইলার ব্যবহারকারীকে একটি সতর্কবার্তা দেখায়৷

উদাহরণ

import java.util.Arrays;
import java.util.List;

public class SafeVarargsTest1 {
   public static void main(String args[]) {
      SafeVarargsTest1 test = new SafeVarargsTest1();
      test.varargsMethod(Arrays.asList("Adithya", "Jaidev"), Arrays.asList("Raja", "Chaitanya"));
   }
   private void varargsMethod(List<String>... list) {
      for(List list1: list)
         System.out.println(list1);
   }
}

আউটপুট

SafeVarargsTest.java:7: warning: [unchecked] unchecked generic array creation for varargs parameter of type List[]
test.varargsMethod(Arrays.asList("Adithya", "Jaidev"), Arrays.asList("Raja", "Chaitanya"));
^
SafeVarargsTest.java:9: warning: [unchecked] Possible heap pollution from parameterized vararg type List
private void varargsMethod(List... list) {
^
2 warnings

[Adithya, Jaidev]
[Raja, Chaitanya]


আমি নিচের উদাহরণে, আমরা @SafeVarargs প্রয়োগ করেছি ব্যক্তিগত পদ্ধতি এর আগে . সুতরাং, এটি কোন সতর্ক বার্তা দেখায় না৷

উদাহরণ

import java.util.Arrays;
import java.util.List;

public class SafeVarargsTest2 {
   public static void main(String args[]) {
      SafeVarargsTest2 test = new SafeVarargsTest2();
      test.varargsMethod(Arrays.asList("Adithya", "Jaidev"), Arrays.asList("Raja", "Chaitanya"));
   }
   @SafeVarargs
   private void varargsMethod(List<String>... list) {
      for(List list1: list)
         System.out.println(list1);
   }
}

আউটপুট

[Adithya, Jaidev]
[Raja, Chaitanya]

  1. জাভাতে অক্ষরের তালিকাকে স্ট্রিং-এ রূপান্তর করুন

  2. কেন আমাদের জাভাতে একটি র্যাপার ক্লাস দরকার?

  3. জাভা লুপ থ্রু লিস্ট

  4. জাভাতে তালিকাকে অ্যারেতে রূপান্তর করুন