سؤال

بالنسبة لـ Google Wave Robot ، في حدث OnDocumentChanged ، أريد تطبيق مرشح على النحو التالي:

@Capability(filter = FILTER)
@Override
public void onDocumentChanged(DocumentChangedEvent event) {
    ...
}

أريد أن يتم إنشاء المرشح في المرة الأولى التي يتم فيها تشغيل الروبوت ، وهو ما أحاول القيام به على النحو التالي:

private static final String FILTER = generateFilter();

private static final String generateFilter(){
    ...
}

ومع ذلك ، فإنه يشكو من أن المرشح ليس تعبيرًا ثابتًا عند استخدامه ضمن قابلية Capability.

ستعيد GenerAteFilter () نفس السلسلة في كل مرة يتم فيها استدعاءها ، فأنا أستخدمها فقط لإنشاء السلسلة بحيث عندما أقوم بإجراء تغييرات ، لا داعي للقلق بشأن تحديث المرشح.

الآن يمكن أن أتعامل مع كل هذا خطأ ، لذلك تساءلت عما إذا كان أي شخص يعرف ما أفعله خطأ ، أو عرفت طريقة أفضل يمكنني من خلالها توليد تعبير مستمر من الوظيفة.

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

المحلول

أنا غير معتاد على Google Wave ، لكن أ التهيئة الثابتة قد تكون مقبولة ، كما هو موضح هنا والموجودة أدناه.

private static final String FILTER;
static { FILTER = "..."; }

إضافة: في التدقيق الدقيق ، هذا النهج هو ليس ممكن ، ك قيمة التعليقات التوضيحية يجب أن يكون (من بين أشياء أخرى) أ تعبير مستمر.

نصائح أخرى

يحتاج المترجم إلى قيمة الرحلات في التعليق التوضيحي في وقت الترجمة وسيحدث التهيئة الخاصة بك أعتقد في وقت تهيئة التطبيق.

ربما يمكنك أن تفعل ذلك مثل هذا:

private static final String FILTER = "YOUR STRING";

private static final String generateFilter() {
   return FILTER;
}

بهذه الطريقة إذا كنت بحاجة إلى تغييره ولا تقلق ، فستذهب إلى الطريقة ومن هناك إلى القيمة الثابتة :).

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