की एक तर्क को ओवरराइट करें, मैं एक ऐसा पहलू विकसित कर रहा हूं जो सेटटर विधियों के तर्कों की जांच करता है और शून्य मान के साथ खाली तारों को ओवरराइट करता है। यह मेरा राज्य अब तक है:Aspectj विधि
@Before("execution(* de.foo.entity.*.set*(..)) && args(java.lang.String)")
public void check(final JoinPoint jp) {
LOGGER.debug(jp.getSignature().toLongString());
Object[] args = jp.getArgs();
for (int i = 0; i < args.length; i++) {
if (args[i] instanceof String && ((String) args[i]).isEmpty()) {
args[i] = null;
}
}
}
दुर्भाग्य से अधिलेखित बयान args[i] = null;
अब काम करता है! क्या किसी को पता है कि मुझे इसे कैसे ओवरराइट करना चाहिए?
चीयर्स,
केविन
@ केविन बीटीडब्ल्यू आप इस 'अगर (तर्क [i] उदाहरण स्ट्रिंग एंड ((स्ट्रिंग) तर्क [i]) को प्रतिस्थापित कर सकते हैं। IsEmpty()) '' के साथ' अगर ("" बराबर है (args [i])) ' –
धन्यवाद, क्या यह और तेज़ है? कास्टिंग के कारण मई? – eglobetrotter
मुझे नहीं लगता कि प्रदर्शन के मामले में बहुत अंतर है, लेकिन मेरा संस्करण अधिक पठनीय है और इसलिए कम त्रुटि-प्रवण –