我正在编写一个方法,它应该从
-对象。由于找不到任何方便的方法来获取方法对象的类名,因此我尝试使用以下Regex表达式来提取它:
([A-Za-z.]*)[\(]
(也许还有一种没有正则表达式的方法?)。
public String getFullClassName(Method method) {
// Example methodname:
// public void com.test.user.impl.UserServiceImpl.deleteUser(java.lang.Long) throws com.test.user.api.exception.UserServiceException
String methodName = method.toString();
Pattern p = Pattern.compile("([A-Za-z.]*)[\\(]");
Matcher m = p.matcher(methodName);
String result = "";
while (m.find()) {
result = m.group();
}
return result;
}
public void com.test.user.impl.UserServiceImpl.deleteUser(java.lang.Long) throws com.test.user.api.exception.UserServiceException
,我得到两个匹配的组:
Group(0) = com.test.user.impl.UserServiceImpl.deleteUser(
Group(1) = com.testuser.impl.UserServiceImpl.deleteUser
因此该方法返回第一组“
com.test.user用户.impl.userserviceinpl.deleteUser(
,但应该是
". 我不想手动选择组,但我想要一个正则表达式,它应该已经给我一个匹配的组。我的正则表达式怎么了?