কেন গ্রহনটি ইন্টারফেস পদ্ধতিতে @ ওভাররাইড সম্পর্কে অভিযোগ করে?


134

আমার একটি বিদ্যমান প্রকল্প রয়েছে যা সুপারক্লাস পদ্ধতির পরিবর্তে ইন্টারফেস পদ্ধতিগুলিকে @Overrideওভাররাইড করে এমন পদ্ধতিগুলিতে ব্যবহার করে । আমি কোডে এটিকে পরিবর্তন করতে পারি না, তবে আমি চাইবেন ইলেপ্সে টীকা নিয়ে অভিযোগ করা বন্ধ করুন, কারণ আমি এখনও মাভেনের সাথে তৈরি করতে পারি।

আমি কীভাবে এই ত্রুটিটি অক্ষম করতে যাব?

দ্রষ্টব্য: প্রকল্পের প্রয়োজনীয়তার কারণে আমার জাভা 1.5 এর জন্য সংকলন করতে হবে।


তবে মনে হয় উত্সটি জাভা 6-র টার্গেট করা হয়েছে?
আকনারোকদ

প্রকৃতপক্ষে. জাভা 5 ম্যাক সমর্থন জন্য একটি দেরী প্রয়োজন ছিল।
স্টিফান কেন্ডাল

উত্তর:


268

@Overrideএকটি ইন্টারফেস দ্বারা ঘোষিত প্রয়োগগুলি প্রয়োগ করে এমন পদ্ধতিতে টীকাগুলি ব্যবহার করা কেবল জাভা 6 থেকে বৈধ। এটি জাভা 5 এ একটি ত্রুটি।

আপনার আইডিই প্রকল্পগুলি একটি জাভা 6 জেআরই ব্যবহারের জন্য সেটআপ করা আছে এবং "উত্সের সামঞ্জস্য" 1.6 বা তার বেশি সেট করা আছে তা নিশ্চিত করুন:

  1. উইন্ডো> পছন্দসমূহ ডায়ালগটি খুলুন
  2. জাভা> সংকলক ব্রাউজ করুন।
  3. সেখানে, "কমপাইলার কমপ্লায়েন্স স্তর "টি 1.6 এ সেট করুন।

মনে রাখবেন যে গ্রহপ কোনও নির্দিষ্ট প্রকল্পের জন্য এই গ্লোবাল সেটিংসকে ওভাররাইড করতে পারে তাই সেগুলিও পরীক্ষা করে দেখুন।


হালনাগাদ:

জাভা 5 এর অধীনে ত্রুটিটি কেবল গ্রহের সাথে নয়; javacকমান্ড লাইন থেকে সরাসরি ব্যবহার করা আপনাকে একই ত্রুটি দেয়। এটি বৈধ জাভা 5 উত্স কোড নয়।

তবে -target 1.5আপনি JDK 6 এর বিকল্পটি নির্দিষ্ট করতে পারবেন javacযা জাভা 6 উত্স কোড থেকে একটি জাভা 5 সংস্করণ শ্রেণি ফাইল তৈরি করবে।


না, তা হবে না। এটি "জাভ্যাক: উত্স রিলিজ 1.6 এর লক্ষ্য প্রকাশের প্রয়োজন 1.6" একটি ত্রুটি বার্তা প্রকাশ করবে।
মাইকেল বর্গওয়ার্ট

9
না, তা হবে না। এটি একটি সংকলিত শ্রেণি ফাইল তৈরি করবে। এটি কেবলমাত্র ত্রুটিটি দেয় যদি আপনি-উত্স 1.6 বিকল্পটি নির্দিষ্ট করে থাকেন যা এই কাজটি করার জন্য প্রয়োজনীয় নয়।
এরিকসন

আপনি জানেন, যেহেতু আমি যেকোনভাবে ম্যানুয়ালি তৈরি করি তাই আমি উত্স স্তরটি কেবল ১.6 এ ছেড়ে যেতে পারি। আমি কোনও ধরণের মিশ্র কনফিগারেশন কাজ করতে পারি না এবং এটি সহজ মনে হয়।
স্টেফান কেন্ডাল

@ এরিকসন -তারেটেজ -সোর্স ডাউনগ্রেড 1.7 থেকে 1.6 এর জন্যও কাজ করে? stackoverflow.com/q/8869869/632951
Pacerier

এটি 1.8 জেডিকে নিয়ে কাজ করবে বলে মনে হচ্ছে না। -সোর্স 1.6 -মার্জন 1.5. বলেছেন: জাভাক: উত্স প্রকাশ 1.6 এর জন্য লক্ষ্য প্রকাশ 1.6 প্রয়োজন
ডন হ্যাচ

39

নিম্নলিখিত হিসাবে করুন:

প্রকল্প -> সম্পত্তি -> জাভা সংকলক ->

  • প্রকল্প নির্দিষ্ট সেটিংস সক্ষম করুন - 'হ্যাঁ'
  • সংকলক সম্মতি - 1.6
  • উত্পন্ন ক্লাস ফাইল এবং উত্স সামঞ্জস্যতা - 1.5

ধন্যবাদ - প্রতিটি প্রকল্পের নিজস্ব নিজস্ব সেটিংসও উপলব্ধি করা যায় নি
whostolemyhat

2
আমার ক্ষেত্রে আমার এই বিকল্পটি অক্ষম করা দরকার।
মুনতে রশি

12

প্রকল্পটির কোন দিক রয়েছে কিনা তাও পরীক্ষা করে দেখুন। জাভা সংস্করণটি সেখানে ওভাররাইড হয়ে যেতে পারে।


1
স্কোর! আপনি ঠিক বলেছেন, আমার প্রকল্পের দিকটি বিশ্বব্যাপী সম্মতি সেটিংসকে ওভাররাইড করছে। ধন্যবাদ!
বিপিওলোস্কি

9

প্রকল্প নির্দিষ্ট সেটিংস সক্ষম করা যেতে পারে। আপনার প্রকল্পের নির্বাচন করুন Project > Properties > Java Compiler, বা পরিবর্তন এবং উপরে সংশ্লিষ্ট বিস্মরণ না । আধারস্থ এটা কাজ করে না, আপনার প্রকল্পের অন্ধকার থেকে অপসারণ, মুছুন , , ফাইল। এবং গ্রহন। এটা আমার জন্য কাজ করেছেuncheckEnable project specific settingsJdk 1.6JRE
.settings folders.project.classpathclean and build the project, import it back into eclipse and then reset your Java compiler. Clean and build your project


7

আপনি জাভা 6 সিনট্যাক্স গ্রহণ করতে সংকলক সেটিংস পরিবর্তন করতে পারেন তবে জাভা 5 আউটপুট তৈরি করতে (যেমনটি আমার মনে আছে)। এবং আপনার রানটাইমের প্রয়োজনে কিছুটা কম "জেনারেটেড ক্লাস ফাইলগুলির সামঞ্জস্য" সেট করুন। আপডেট : আমি Eclipse পরীক্ষা করেছিলাম, তবে আমি অভিযোগ উত্পন্ন করে যদি আমি উত্সটি 1.6 এবং ক্লাসের সামঞ্জস্যতা 1.5 তে নির্ধারণ করি। যদি 1.6 এর অনুমতি না দেওয়া হয় তবে আমি সাধারণত উত্সটিতে আপত্তিজনক @ ওভাররাইড টীকাগুলি ম্যানুয়ালি মন্তব্য করি (যা আপনার ক্ষেত্রে সহায়তা করে না)।

আপডেট 2: আপনি যদি কেবল ম্যানুয়াল বিল্ড করেন তবে আপনি একটি ছোট প্রোগ্রাম লিখতে পারেন যা মূল প্রকল্পটি একটি নতুনতে অনুলিপি করে, জাভা উত্স থেকে ওভাররাইড টিকাগুলি স্ট্রিপ করে এবং আপনি সবেমাত্র একটিলাইসে ক্লিন প্রজেক্টকে আঘাত করেছেন।


আপনি কোন নির্দিষ্টকরণ সরবরাহ করতে পারেন?
স্টিফান কেন্ডাল

এটি একই পৃষ্ঠায় যেমন ইরিকসন বলেছে।
আকর্ণোকদ

প্রকল্পটি বেশ কয়েকটি জিবি বড়। একটি সাধারণ "অনুলিপি" এমনকি ব্যবহারিক নয়। : /
স্টেফান কেন্ডাল

এই ক্ষেত্রে, আপনাকে পরিবর্তনের অনুমতি চাইতে হবে। বা 1.5 সামঞ্জস্যপূর্ণ উত্সগুলির জন্য একটি শাখা তৈরি করুন এবং জাভা ফাইলগুলি ম্যানুয়ালি ঠিক করুন।
আকরণোকদ

1

আপনি জাভা 6 ক্লাস থেকে জাভা 5 সংস্করণ তৈরি করতে রেট্রোইভার চেষ্টা করতে পারেন।


1

"@ ওভাররাইড" এর সমস্ত দৃষ্টান্ত অনুসন্ধান এবং প্রতিস্থাপন (অপসারণ) করতে Eclipse ব্যবহার করুন। তারপরে "ক্লিন আপ" ব্যবহার করে নন-ইন্টারফেস ওভাররাইডগুলি আবার যুক্ত করুন।

পদক্ষেপ:

  1. আপনার উত্স ফাইলযুক্ত প্রকল্পগুলি বা ফোল্ডারগুলি নির্বাচন করুন।
  2. অনুসন্ধান সংলাপটি আনতে "অনুসন্ধান> অনুসন্ধান ..." (Ctrl-H) এ যান।
  3. "ফাইল অনুসন্ধান" ট্যাবে যান।
  4. "ফাইলের নামের নিদর্শনগুলিতে" "পাঠ্য ধারণ করে" "ওভাররাইড" এবং "*। জাভা" লিখুন Enter "@ ওভাররাইড" এর সমস্ত দৃষ্টান্ত সরাতে "প্রতিস্থাপন করুন ...", তারপরে "ঠিক আছে" ক্লিক করুন।
  5. "উইন্ডো> পছন্দসমূহ> জাভা> কোড স্টাইল> সাফ করুন" এ যান এবং একটি নতুন প্রোফাইল তৈরি করুন।
  6. প্রোফাইলটি সম্পাদনা করুন এবং "মিসিং কোড> নিখোঁজ টীকাগুলি যুক্ত করুন> @ ওভাররাইড" ব্যতীত সমস্ত কিছুই টিক চিহ্ন দিন। "ইন্টারফেস পদ্ধতির প্রয়োগ" চেক করা হয়নি তা নিশ্চিত করুন।
  7. আপনার উত্স ফাইলযুক্ত প্রকল্পগুলি বা ফোল্ডারগুলি নির্বাচন করুন।
  8. "উত্স> নির্বাচন করুন ..." নির্বাচন করুন (Alt + Shift + s, তারপরে আপনি), তারপরে নন-ইন্টারফেস ওভাররাইডগুলিকে যুক্ত করতে "সমাপ্ত" করুন।

0

আমি আপনার সমস্যা বুঝতে পেরেছি, আপনার জেডিকে আপনার জেডি কে থেকে গ্রেটথান 1.5 তে পরিবর্তন করুন


0

আইডিই প্রকল্পগুলি জাভা 6 জেআরই বা তার থেকেও বেশি সময় ব্যবহারের জন্য সেটআপ করা হয়েছে তা কনফিগার করে গ্রহনের ত্রুটিটি সরিয়ে দেয় না। আমার জন্য Eclip IDE পুনঃসূচনা সাহায্য করেছিল।


0

উইন্ডোজ ট্যাব থেকে কম্পাইলার কমপ্লায়েন্স সেটিংটি 1.6 বা 1.7 এ পরিবর্তন করার পরে, তারপরে জাভা, তারপরে সংকলক এবং সংকলক সম্মতি সেট করার পরেও আমার এই সমস্যাটি ছিল। ধারণাটি হ'ল আমাদের প্রজেক্ট ফোল্ডারটি যেতে হবে, ডান ক্লিক করুন, জাভা এবং 1.6 বা হাইজারের সংকলক সম্মতি সেট করতে হবে। এটি আমার পক্ষে কাজ করেছে।

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