ডিফল্ট পদ্ধতিগুলিতে বাইটোকোড এবং জেভিএম-তে এমন পরিবর্তন প্রয়োজন যা জাভা on এ করা তাদের পক্ষে অসম্ভব হয়ে পড়েছিল 7. এবং নীচে জাভা ode এর বাইটকোড যাচাইকারী পদ্ধতি সংস্থাগুলির সাথে ইন্টারফেস প্রত্যাখ্যান করবে (স্ট্যাটিক আরম্ভকারী পদ্ধতি বাদে)। কলারের দিকে স্থির পদ্ধতি সহ ডিফল্ট পদ্ধতিগুলি অনুকরণ করার চেষ্টা করা একই ফলাফল তৈরি করতে পারে না, কারণ ডিফল্ট পদ্ধতিগুলি সাবক্লাসগুলিতে ওভাররাইড করা যায়। ব্যাকপোর্টিং ডিফল্ট পদ্ধতিগুলির জন্য রেট্রোলাম্বদার সীমিত সমর্থন রয়েছে তবে এটি কখনই পুরোপুরি ব্যাকপোর্ট করা যায় না কারণ এর জন্য সত্যই নতুন জেভিএম বৈশিষ্ট্য প্রয়োজন।
ল্যাম্বডাস জাভা 7 তে চলতে পারে, যদি প্রয়োজনীয় এপিআই ক্লাস কেবল সেখানে উপস্থিত থাকে। জাভা on-তে চালিত নির্দেশাবলী বিদ্যমান, তবে ল্যাম্বডাস বাস্তবায়ন করা সম্ভব হত যাতে এটি কম্বাইলের সময়ে ল্যাম্বডা ক্লাস তৈরি করে (প্রারম্ভিক জেডিকে 8 এটি সেভাবে করেছিল) কোন জাভা সংস্করণে এটি কাজ করবে। (ওরাকল ভবিষ্যতের প্রুফিংয়ের জন্য ল্যাম্বডাসের জন্য ইনভোকডিনামিক ব্যবহার করার সিদ্ধান্ত নিয়েছে; সম্ভবত একদিন জেভিএমের প্রথম শ্রেণীর ফাংশন থাকবে, সুতরাং প্রতিটি ল্যাম্বডায় একটি শ্রেণি তৈরির পরিবর্তে সেগুলি ব্যবহারের জন্য ইনভোকেইনামিক পরিবর্তন করা যেতে পারে, সুতরাং কার্যকারিতা উন্নত করে)) রেট্রোলাম্বদা কী করে যে এটি সমস্ত চালিত নির্দেশাবলী প্রক্রিয়া করে এবং বেনামে শ্রেণীর সাথে তাদের প্রতিস্থাপন করে; জাভা 8 রানটাইমের সময় যা করে যখন ল্যামড্বা ইনভোকেডাইনামিককে প্রথমবার বলা হয় ঠিক তেমনই।
টীকাগুলি পুনরাবৃত্তি করা কেবল সিনট্যাকটিক চিনি। তারা পূর্ববর্তী সংস্করণগুলির সাথে বাইকোড সামঞ্জস্যপূর্ণ। জাভা 7-এ আপনাকে নিজের জন্য সহায়ক পদ্ধতিগুলি প্রয়োগ করতে হবে (যেমন getAnnotationsByType ) যা একটি ধারক টীকা প্রয়োগের বিশদটি গোপন করে যা বারবার টীকাগুলি অন্তর্ভুক্ত করে।
আফাইক, প্রকার টীকাগুলি কেবল সংকলনের সময় উপস্থিত রয়েছে, সুতরাং তাদের বাইটোকড পরিবর্তনের প্রয়োজন হবে না, তাই জাভা 8-সংকলিত শ্রেণীর বাইটকোড সংস্করণ সংখ্যা পরিবর্তন করা তাদের জাভা 7 এ কাজ করার জন্য পর্যাপ্ত হওয়া উচিত।
জাভা 7 সহ বাইটকোডে পদ্ধতির প্যারামিটারের নামগুলি বিদ্যমান, তাই এটিও সামঞ্জস্যপূর্ণ। পদ্ধতির বাইকোড পড়ে এবং পদ্ধতির ডিবাগ তথ্যের স্থানীয় পরিবর্তনশীল নামগুলি দেখে আপনি তাদের অ্যাক্সেস পেতে পারেন। উদাহরণস্বরূপ স্প্রিং ফ্রেমওয়ার্কটি হ'ল @ প্যাথভেরিয়েবল বাস্তবায়নের জন্য তাই করে, তাই সম্ভবত একটি লাইব্রেরি পদ্ধতি রয়েছে যা আপনি কল করতে পারেন। যেহেতু অ্যাবস্ট্রাক্ট ইন্টারফেসের পদ্ধতিগুলির কোনও মেথড বডি নেই, জাভা in তে এবং এএফআইএকে জাভা ৮-তে ইন্টারফেস পদ্ধতিগুলির জন্য ডিবাগ তথ্য উপস্থিত নেই।
অন্যান্য নতুন বৈশিষ্ট্যগুলি হ'ল বেশিরভাগ নতুন এপিআই, হটস্পট এবং সরঞ্জামদানের উন্নতি। নতুন কয়েকটি API গুলি তৃতীয় পক্ষের লাইব্রেরি হিসাবে উপলব্ধ (যেমন থ্রিটেন-ব্যাকপোর্ট এবং স্ট্রিমসপোর্ট )।
Summa Summarum, ডিফল্ট পদ্ধতিতে নতুন JVM বৈশিষ্ট্য প্রয়োজন তবে অন্যান্য ভাষার বৈশিষ্ট্যগুলি এটির নয়। আপনি যদি সেগুলি ব্যবহার করতে চান তবে আপনাকে জাভা 8-র কোডটি সংকলন করতে হবে এবং তারপরে রেট্রোলম্বদা সহ বাইটোকোডটি জাভা 5/6/7 ফর্ম্যাটে রূপান্তর করতে হবে। সর্বনিম্ন বাইটকোড সংস্করণটি পরিবর্তন করা দরকার, এবং জাভ্যাক অস্বীকার করে -source 1.8 -target 1.7
তাই একটি retrotranslator প্রয়োজন।