public class SendEmailImpl
{
private boolean isValidEmailAddress(String email)
{
boolean stricterFilter = true;
String stricterFilterString = "[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
String laxString = "[email protected]+\\.[A-Za-z]{2}[A-Za-z]*";
String emailRegex = stricterFilter ? stricterFilterString : laxString;
Pattern p = Pattern.compile(emailRegex);
Matcher m = p.matcher(email);
return m.matches();
}
}
Я попытался вызвать этот код с помощью отраженияобъект Java не является экземпляром класса объявляя
@Test
public void testValidEmail() throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException
{
Method method = SendEmailImpl.class.getDeclaredMethod("isValidEmailAddress", String.class);
method.setAccessible(true);
Boolean invoke = (Boolean) method.invoke("isValidEmailAddress", String.class);
assertTrue(invoke);
System.out.println("Testing E-mail validator - case [email protected]");
}
Но я получаю ошибку
java.lang.IllegalArgumentException: объект не является пример объявления класса
У вас есть идеи, где мой код wron г?
Я также попытался это:
@Test
public void testValidEmail() throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException
{
Method method1 = SendEmailImpl.class.getDeclaredMethod("isValidEmailAddress", String.class);
method1.setAccessible(true);
Boolean invoke = (Boolean)method1.invoke(String.class);
assertTrue(invoke);
System.out.println("Testing E-mail validator - case [email protected]");
}
Но результат тот же.
какая линия выбрасывает исключение? – JohnnyAW
Этот булевский вызов = (булевский) метод1.invoke (String.class); –