উত্তর:
আমি ক্রিসের জবাব এক সাথে মানতে পারব না । ক্লাস Any, AnyRefএবং AnyVal হয় ক্লাস। জেভিএমের অভ্যন্তরীণ সীমাবদ্ধতার কারণে তারা বাইটোকোডে ক্লাস হিসাবে উপস্থিত হয় না।
এটি জাভাতে থাকা সমস্ত কিছুই একটি বস্তু নয় এমনটি থেকে উদ্ভূত হয়। বস্তুগুলি ছাড়াও আদিম রয়েছে। জাভাতে সমস্ত অবজেক্টস বংশোদ্ভূত java.lang.Object, তবে আদিমগুলি পৃথক করে রাখা হয় এবং বর্তমানে * কোনও প্রোগ্রামার দ্বারা এক্সটেনসিবল নয়। এও লক্ষ করুন যে আদিমদের "অপারেটর" রয়েছে, পদ্ধতি নেই।
অন্যদিকে স্কালায়, সমস্ত কিছুই একটি বস্তু, সমস্ত বস্তু একটি শ্রেণীর অন্তর্গত, এবং তারা পদ্ধতির মাধ্যমে যোগাযোগ করে। উত্পন্ন জেভিএম বাইটকোড এটিকে প্রতিফলিত করে না, তবে জাভা যেমন জেনেরিকস রয়েছে, তবুও বাইটকোড না থাকলেও এটি তাদের কম দেয় না।
সুতরাং, স্কালায়, সমস্ত অবজেক্টগুলি বংশোদ্ভূত Any, এবং এর মধ্যে জাভা কী জিনিসকে বিবেচনা করে এবং যা জাভা আদিম বিবেচনা করে তা উভয়ই অন্তর্ভুক্ত। জাভাতে কোনও সমতুল্য নেই কারণ এ জাতীয় কোনও একীকরণ নেই।
জাভাতে আদিম হিসাবে বিবেচিত সমস্ত কিছুই AnyValস্কালার বংশধর । স্কেল ২.১০.০ পর্যন্ত AnyValসিল ছিল এবং প্রোগ্রামাররা এটি প্রসারিত করতে অক্ষম ছিল। স্কালার সাথে কী হবে তা দেখার জন্য আকর্ষণীয় হওয়া উচিত et নেট, যেহেতু আন্তঃব্যবহারযোগ্যতা একাই স্কালাকে কমপক্ষে ব্যবহারকারী-সংজ্ঞায়িত "আদিম" স্বীকৃতি দেয়।
এছাড়াও প্রসারিত Anyহয় AnyRef, যা java.lang.Object(যে কোনও হারে জেভিএমের) সমতুল্য ।
স্কেল ২.৯.x অবধি, কোনও ব্যবহারকারী জাভা থেকে তাদের প্রসারিত করতে Anyবা AnyValতাদের রেফারেন্স করতে পারেনি, তবে স্কালায় এগুলি প্রয়োগ করতে পারে এমন অন্যান্য ব্যবহার রয়েছে। বিশেষত, স্বাক্ষরগুলি টাইপ করুন:
def f(x: AnyVal) = println(x)
def g(x: AnyRef) = println(x)
def h(x: Any) = println(x)
প্রতিটি অর্থ কী বর্গ স্তরক্রম থেকে সুস্পষ্ট হওয়া উচিত। উল্লেখ্য, এটি হ'ল fএবং hএটি অটো-বাক্স gহবে , তবে তা করবে না। এটা একটা কি জাভা করে, যে বিপরীত বিট fএবং hনির্দিষ্ট করা যাবে না, এবং g(দ্বারা সংজ্ঞায়িত java.lang.Object) স্বতঃ-বক্সিং কারণ হবে।
স্কেলা ২.১০.০ দিয়ে শুরু করে, যদিও ব্যবহারকারী নিম্নোক্ত শব্দার্থবিজ্ঞানের সাহায্যে প্রসারিত করতে পারেন AnyValবা Any:
যদি কোনও শ্রেণি প্রসারিত AnyValহয় তবে নির্দিষ্ট শর্তে এটির স্তূপে কোনও উদাহরণ তৈরি করা হবে না। এর অর্থ এই শ্রেণীর ক্ষেত্রগুলি (২.১০.০ তে কেবলমাত্র একটি একক ক্ষেত্রের অনুমতি রয়েছে - যা পরিবর্তিত হবে কিনা তা দেখতে পাওয়া যায়) স্ট্যাকের উপর থেকে থাকবে, সেগুলি আদিম বা অন্যান্য বস্তুর রেফারেন্স কিনা। এটি ইনস্ট্যান্টেশন ব্যয় ছাড়াই এক্সটেনশন পদ্ধতিগুলিকে মঞ্জুরি দেয়।
যদি কোনও বৈশিষ্ট্য প্রসারিত হয় Any, তবে এটি উভয় শ্রেণীর সাথে ব্যবহার করা যেতে পারে যা প্রসারিত AnyRefএবং ক্লাসগুলি প্রসারিত হয় AnyVal।
পিএস: আমার নিজের দৃষ্টিতে, জাভা সম্ভবত "স্ট্রাক্ট" আদিমদের অনুমতি দেওয়ার ক্ষেত্রে সি # অনুসরণ করবে এবং সম্ভবত টাইফিডেফস, কারণ তাদের প্রতিশ্রুতি না দিয়ে সমান্তরালতা ভাল পারফরম্যান্সের সাথে সম্পাদন করা কঠিন প্রমাণ করছে।
এই দেখেন? পৃষ্ঠার পাঠ্যে কিছু জাভা আন্তঃব্যবহারযোগ্য মন্তব্য রয়েছে। http://www.scala-lang.org/node/128

Anyএবং AnyVal, আমি বিশ্বাস করি, Scala অংশ টাইপ সিস্টেম এবং যেমন শ্রেণীর নয় (একই ভাবে যে Nothingএক ধরনের, না একটি ক্লাস হয়)। আপনি এগুলিকে জাভা কোডের মধ্যে থেকে স্পষ্টভাবে ব্যবহার করতে পারবেন না।
Howwever, জাভা / Scala আন্তঃক্রিয়াকলাপের, একটি পদ্ধতি যা গ্রহণ করে একটি জাভা Objecta Scala আশা করবে Any/ AnyRef।
আপনি আসলে কী করার চেষ্টা করছেন?
AnyRefআমাকে কেবল মনে করিয়ে দেওয়ার জন্য যে এটি এখনও আমার কাছে রহস্যজনক ছিল।
AnyValহিসাবে হিসাবে সংজ্ঞায়িত করা হয়েছেsealed trait AnyVal extends Any। কিন্তু Scala 2.10 এ এই পরিবর্তিত হয়েছেabstract class AnyVal extends Any with NotNull, এবং এটি এখন প্রসারিত করা সম্ভবAnyValনতুন মান শ্রেণীর বৈশিষ্ট্য, যেমন সঙ্গেclass MyValue(val u: Int) extends AnyVal।