سؤال

ما هي قائمة صالحة @SuppressWarnings تحذير الأسماء في جافا ؟

بت التي تأتي في بين ("") في @SuppressWarnings("").

هل كانت مفيدة؟

المحلول

ذلك يعتمد على IDE أو مترجم.

هنا قائمة عن الكسوف غاليليو:

  • كل لقمع كل التحذيرات
  • الملاكمة لقمع تحذيرات نسبة إلى الملاكمة/علبته العمليات
  • الزهر لقمع تحذيرات نسبة إلى الزهر العمليات
  • dep-آن لقمع تحذيرات نسبة إلى إهمال الشرح
  • انتقاص لقمع تحذيرات نسبة إلى انتقاص
  • fallthrough لقمع تحذيرات نسبة إلى فواصل مفقود في التبديل البيانات
  • أخيرا لقمع تحذيرات النسبية أن كتلة أخيرا أن لا عودة
  • يختبئ لقمع تحذيرات نسبة إلى السكان المحليين التي تخفي متغير
  • مكتملة-التبديل لقمع تحذيرات نسبة إلى إدخالات في عداد المفقودين في بيان التبديل (enum الحالة)
  • nls لقمع تحذيرات بالنسبة إلى غير nls سلسلة حرفية
  • null لقمع تحذيرات نسبة إلى null تحليل
  • تقييد لقمع تحذيرات نسبة إلى استخدام بالإحباط أو ممنوع المراجع
  • المسلسل لقمع تحذيرات نسبة إلى عداد المفقودين serialVersionUID حقل تسلسل فئة
  • ثابت-الوصول لقمع تحذيرات نسبي غير ثابت الوصول
  • الاصطناعية الوصول لقمع تحذيرات بالنسبة إلى غير محسن الوصول من الطبقات الداخلية
  • دون رادع لقمع تحذيرات نسبة إلى لحالها العمليات
  • المشروط في-مجال-الحصول لقمع تحذيرات نسبة إلى الميدان الوصول غير المشروط
  • غير المستخدمة لقمع تحذيرات بالنسبة إلى غير مستخدمة

قائمة بالنسبة النيلي يضيف:

  • جافادوك لقمع تحذيرات نسبة إلى جافادوك تحذيرات
  • rawtypes لقمع تحذيرات نسبة إلى استخدام أنواع الخام
  • ثابت-طريقة لقمع تحذيرات نسبة إلى الأساليب التي يمكن أن أعلن عن ثابت
  • سوبر لقمع تحذيرات نسبة إلى تجاوز طريقة بدون سوبر الدعاء

قائمة عن جونو يضيف:

  • الموارد لقمع تحذيرات نسبة إلى استخدام الموارد من نوع Closeable
  • تزامن تجاوز لقمع تحذيرات بسبب ضياع مزامنة عند تجاوز طريقة متزامنة

كبلر و لونا استخدام نفس رمز القائمة جونو (قائمة).

الآخرين سوف تكون متشابهة ولكن تختلف.

نصائح أخرى

كل القيم المسموح بها (غير المعترف بها التي يتم تجاهلها).قائمة المعترف بها منها هو مترجم محددة.

في جافا الدروس unchecked و deprecation يتم سرد اثنين من التحذيرات المطلوبة من خلال لغة جافا مواصفات, ولذلك ، ينبغي أن تكون صالحة مع جميع المجمعين:

كل مترجم تحذير من ينتمي إلى فئة.لغة جافا مواصفات قوائم فئتين:انتقاص ودون رادع.

أقسام محددة داخل لغة جافا مواصفات حيث يتم تعريف ليست متسقة في جميع الإصدارات.في جافا SE 8 مواصفات unchecked و deprecation يتم سرد مترجم تحذيرات في أقسام 9.6.4.5.@الباحث و 9.6.4.6 @مستنكر, ، على التوالي.

عن الشمس مترجم, تشغيل javac -X يعطي قائمة من القيم المعترف بها من قبل هذا الإصدار.بالنسبة 1.5.0_17 القائمة يبدو أن:

  • كل
  • انتقاص
  • دون رادع
  • fallthrough
  • المسار
  • المسلسل
  • أخيرا

القائمة مترجم محددة.ولكن هنا هي القيم المعتمدة في الكسوف:

  • allDeprecation انتقاص حتى داخل إهمال رمز
  • allJavadoc مفقود أو غير صالح جافادوك
  • assertIdentifier حدوث تأكيد استخدام معرف
  • الملاكمة autoboxing التحويل
  • charConcat عندما شار مجموعة يستخدم في سلسلة سلسلة دون تحويلها صراحة إلى سلسلة
  • conditionAssign ممكن عرضي منطقية مهمة
  • constructorName الأسلوب مع منشئ اسم
  • dep-آن في عداد المفقودين @مستنكر الشرح
  • انتقاص استخدام إهمال نوع أو الأعضاء خارج إهمال رمز
  • تثبيط استخدام أنواع مطابقة تثبيط الوصول إلى القاعدة
  • emptyBlock لا يحملون وثائق كتلة فارغة
  • enumSwitch, مكتملة-التبديل غير مكتمل التعداد التبديل
  • fallthrough ممكن تقع من خلال حالة
  • fieldHiding مجال يختبئ متغير آخر
  • finalBound نوع المعلمة مع النهائي لا بد
  • أخيرا وأخيرا كتلة عدم استكمال عادة
  • ممنوع استخدام أنواع مطابقة ممنوع الوصول القاعدة
  • يختبئ الكلي عن fieldHiding, localHiding, typeHiding و maskedCatchBlock
  • indirectStatic غير المباشرة إشارة إلى عضو ثابت
  • intfAnnotation الشرح نوع تستخدم واجهة سوبر
  • intfNonInherited واجهة غير ورثت طريقة التوافق
  • جافادوك صالح جافادوك
  • localHiding المتغير المحلي يختبئ متغير آخر
  • maskedCatchBlocks خفية catch
  • nls غير nls سلسلة حرفية (تفتقر العلامات //$غير NLS-)
  • noEffectAssign الاحالة مع أي تأثير
  • null المحتملة في عداد المفقودين أو زائدة null الاختيار
  • nullDereference في عداد المفقودين null الاختيار
  • الإفراط في آن في عداد المفقودين @تجاوز الشرح
  • paramAssign الإحالة إلى معلمة
  • pkgDefaultMethod محاولة تجاوز حزمة الافتراضي طريقة
  • الخام استخدام مجموعة من الخام نوع (بدلا من parametrized نوع)
  • منقوطة لا لزوم لها منقوطة أو فارغة البيان
  • المسلسل في عداد المفقودين serialVersionUID
  • specialParamHiding منشئ أو واضع المعلمة إخفاء حقل آخر
  • ثابت-الوصول الكلي عن indirectStatic و staticReceiver
  • staticReceiver إذا كان غير ثابت المتلقي يستخدم للحصول على حقل ثابت أو استدعاء أسلوب ثابت
  • سوبر تجاوز الأسلوب دون سوبر الاحتجاج
  • وقمع تمكين @الباحث
  • syntheticAccess ، الاصطناعية الوصول عند تنفيذ الاصطناعية وصول innerclass
  • المهام تمكين دعم المهام العلامات في التعليمات البرمجية المصدر
  • typeHiding نوع المعلمة يختبئ نوع آخر
  • دون رادع دون رادع نوع العملية
  • unnecessaryElse لا لزوم لها آخر شرط
  • غير المشروط-ميدان-الوصول unqualifiedField غير مؤهلين إشارة إلى الحقل
  • غير المستخدمة الكلي عن unusedArgument, unusedImport, unusedLabel, unusedLocal, unusedPrivate و unusedThrown
  • unusedArgument مستخدمة الأسلوب الحجة
  • unusedImport غير المستخدمة استيراد المرجعية
  • unusedLabel غير المستخدمة التسمية
  • unusedLocal غير المستخدمة المتغير المحلي
  • unusedPrivate غير المستخدمة الخاصة الأعضاء في الإعلان
  • unusedThrown غير المستخدمة أعلن طرح استثناء
  • uselessTypeCheck لا لزوم لها الزهر/instanceof العملية
  • varargsCast varargs الحجة حاجة صريحة الزهر
  • warningToken غير معالج تحذير المميز في @الباحث

الشمس JDK (1.6) لديها أقصر قائمة المدعومة من التحذيرات:

  • انتقاص التحقق من استخدام انخفضت البنود.
  • دون رادع إعطاء المزيد من التفاصيل عن لحالها التحويل التحذيرات التي تجري بتكليف من لغة جافا المواصفات.
  • المسلسل تحذير حول المفقودين serialVersionUID التعاريف على تسلسل الطبقات.
  • أخيرا تحذير أخيرا البنود التي لا يمكن إكمال عادة.
  • fallthrough التحقق من تبديل كتل تسقط-من خلال الحالات وتقديم رسالة تحذير لأي التي تم العثور عليها.
  • المسار تحقق من المسار غير موجود في البيئة مسارات (مثل classpath).

أحدث javac (1.6.0_13) لنظام التشغيل mac التالية معتمدة تحذيرات

  • كل
  • الزهر
  • انتقاص
  • divzero
  • فارغة
  • دون رادع
  • fallthrough
  • المسار
  • المسلسل
  • أخيرا
  • يتجاوز

وو@SuppressWarnings("WeakerAccess") مفضلة جديدة بالنسبة لي في IntelliJ لل، والتي تحافظ عليه من يشكو عندما تعتقد أنك يجب أن يكون معدل وصول أضعف من الذي تستخدمه. علينا أن يكون وصول الجمهور لبعض الطرق لدعم الاختبار، والشرح @VisibleForTesting لا يمنع التحذيرات.

وETA: "مجهول" وعلق على الصفحةMattCampbell مرتبطة، وعلما نافعا بشكل لا يصدق التالية:

<اقتباس فقرة>   

ويجب أن لا تحتاج إلى استخدام هذه القائمة لغرض كنت   وصف. سوف IntelliJ للإضافة تلك SuppressWarnings لك   تلقائيا إذا كنت تسأل ل. فقد كان قادرا على القيام بذلك ل   العديد من النشرات يعود على ما أذكر.

     

واذهبوا إلى مكان حيث لديك التحذير ونوع البديل، أدخل   (أو تحديده في قائمة التفتيش إذا كنت ترى أن هناك).   عندما تأتي من القائمة المنبثقة، والتي تبين التحذير وتقديم لتصحيح الامر بالنسبة   لك (على سبيل المثال، إذا التحذير هو "الأسلوب قد يكون ثابت" ثم "جعل ثابت"   هو عرض IntellJ لإصلاح ذلك لك)، بدلا من تحديد "دخول"،   مجرد استخدام زر السهم الأيمن للوصول إلى القائمة الفرعية، والتي سيكون لها   خيارات مثل "إعداد ملف تحرير التفتيش" وهكذا دواليك. في ال   وأسفل هذه القائمة ستكون خيارات مثل "قمع جميع عمليات التفتيش ل   الطبقة "،" قمع لفئة "،" قمع لطريقة "، وأحيانا   "قمع للبيان." وربما كنت تريد أي واحد من هؤلاء   يبدو الأخير في القائمة. واختيار واحدة من هذه إضافة   SuppressWarnings الشرح (أو تعليق في بعض الحالات) إلى التعليمات البرمجية   قمع التحذير في السؤال. لن تحتاج إلى تخمين الذي   الشرح لإضافة، لأن IntelliJ للسيختار بناء على التحذير   الذي حددته.

وهذا يبدو أن قائمة أكثر اكتمالا من ذلك بكثير، حيث وجدت بعض تحذيرات محددة لالروبوت استوديو أنني لا يمكن أن تجد في أي مكان آخر (على سبيل المثال SynchronizeOnNonFinalField)

https://jazzy.id.au/2008/10/30/ list_of_suppresswarnings_arguments.html

وأوه، الآن المبادئ التوجيهية SO في contraddict القيود SO ل. فمن ناحية، أنا من المفترض أن نسخ قائمة بدلا من تقديم فقط الارتباط. ولكن من ناحية أخرى، فإن هذا من شأنه أن يتجاوز الحد الأقصى المسموح به عدد الأحرف. لذلك دعونا نأمل فقط ان صلة لا كسر.

JSL 1.7

أوراكل الوثائق يذكر:

  • unchecked:دون رادع التحذيرات التي حددتها السلسلة "دون رادع".
  • deprecation:Java compiler يجب أن تنتج انتقاص تحذير عند نوع, طريقة, حقل, أو منشئ الذي الإعلان هو مشروح مع الشرح @انتقدت يستخدم (أيتجاوز الاحتجاج بها أو الإشارة إليها بالاسم) ، ما لم:[...] استخدام داخل كيان المشروح لقمع التحذير مع الشرح @الباحث("انتقاص");أو

ثم يوضح أن تطبيقات يمكن أن تضيف الوثيقة الخاصة بهم:

مترجم البائعين يجب أن الوثيقة التحذير أسماء أنها تدعم بالتزامن مع هذا الشرح نوع.البائعين على التعاون لضمان أن نفس الأسماء العمل عبر العديد من المجمعين.

وأريد فقط أن أضيف أن هناك قائمة رئيسية IntelliJ للقمع المعلمات في: HTTPS: // gist.github.com/vegaasen/157fbc6dce8545b7f12c

ويبدو شامل إلى حد ما. جزئية:

Warning Description - Warning Name

"Magic character" MagicCharacter 
"Magic number" MagicNumber 
'Comparator.compare()' method does not use parameter ComparatorMethodParameterNotUsed 
'Connection.prepare*()' call with non-constant string JDBCPrepareStatementWithNonConstantString 
'Iterator.hasNext()' which calls 'next()' IteratorHasNextCallsIteratorNext 
'Iterator.next()' which can't throw 'NoSuchElementException' IteratorNextCanNotThrowNoSuchElementException 
'Statement.execute()' call with non-constant string JDBCExecuteWithNonConstantString 
'String.equals("")' StringEqualsEmptyString 
'StringBuffer' may be 'StringBuilder' (JDK 5.0 only) StringBufferMayBeStringBuilder 
'StringBuffer.toString()' in concatenation StringBufferToStringInConcatenation 
'assert' statement AssertStatement 
'assertEquals()' between objects of inconvertible types AssertEqualsBetweenInconvertibleTypes 
'await()' not in loop AwaitNotInLoop 
'await()' without corresponding 'signal()' AwaitWithoutCorrespondingSignal 
'break' statement BreakStatement 
'break' statement with label BreakStatementWithLabel 
'catch' generic class CatchGenericClass 
'clone()' does not call 'super.clone()' CloneDoesntCallSuperClone

لاحظت أن //noinspection يمكن أن تكون ولدت السيارات في IntelliJ

  • تأكد من أن لديك بالفعل خطة @SuppressWarninigs قبل البيان
  • الآن يمكنك السيارات-توليد محددة //noinspection عن طريق ضرب Alt+Enter عندما يكون لديك تحذير المحدد ومن ثم استخدام حق مفتاح السهم لمشاهدة وقمع من أجل ... الخيار

انتهى هنا عندما أردت أن قمع "التبديل لديه عدد قليل جدا من حالة التسميات" تحذير من IntelliJ.لم أجد قائمة كاملة من أجل IntelliJ هو @SuppressWarning الدعم ولكن //noinspection لم خدعة بالنسبة لي.

إذا كنت تستخدم SonarLint، محاولة فوق الأسلوب أو فئة سلسلة الحبار كله:     SuppressWarnings ( "الحبار: S1172")

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top