Java-Objekt ist eine Instanz der Klasse deklarieren
public class SendEmailImpl
{
private boolean isValidEmailAddress(String email)
{
boolean stricterFilter = true;
String stricterFilterString = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
String laxString = ".+@.+\\.[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();
}
}
Ich versuchte zu rufen, diesen code mit der spiegelung
@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]");
}
Aber ich bekomme Fehler
java.lang.IllegalArgumentException: Objekt ist eine Instanz der Klasse deklarieren
Haben Sie keine Ahnung, wo ist mein code falsch?
Ich auch so probiert:
@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]");
}
Aber das Ergebnis ist das gleiche.
welche Linie ist das werfen der exception?
Diese ein Boolean-invoke = (Boolean)method1.invoke(String.class);
Diese ein Boolean-invoke = (Boolean)method1.invoke(String.class);
InformationsquelleAutor Peter Penzov | 2015-11-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie den Aufruf der
isValidEmailAddress
- Methode mit einemClass<String>
parameter (String.class
) statt einerString
. Auch das erste argument sollte sein, eine Instanz der Klasse, die Sie möchten, um die Methode aufzurufen (weil es nicht statische Methode).Zitieren
- Methode.aufrufen
Javadoc:Korrigierte code:
InformationsquelleAutor Tunaki