Warning - was wollen die?

lumo

Top Contributor
hallo,

kann mir jemand sagen, was folgende warning bedeutet?
oder was die wollen, dass man im code tut?

(hinweis: das ganze passiert bei reflection - warning wird in zeile 5 angezeigt.)

Code:
The argument of type null should explicitly be cast to Class<?>[] for the invocation of the varargs method getMethod(String, Class<?>...) from type Class<capture#2-of ? extends Object>. It could alternatively be cast to Class<?> for a varargs invocation

[JAVA=1]
public static Method method(Object object, String methodName) {
Method m = null;
try {
// Look for a method with the given name and no parameters
m = object.getClass().getMethod(methodName, null);
} catch (Exception e) {
System.out.println("Can't find method (" +methodName+ "). " + e);
}
return m;
}
[/code]
 
T

Tomate_Salat

Gast
der hätte es halt gerne so: [c](Class<?>)null[/c]. Aber du kannst das [c], null[/c] auch einfach weglassen:
Java:
m = object.getClass().getMethod(methodName);
damit suchst du halt nach einer Parameterlosen Methode

MFG

Tomate_Salat
 
T

Tomate_Salat

Gast
kleiner Tipp, wenn du deine Methode so abänderst:

Java:
public static Method method(Object object, String methodName, Class<?>... param) {
        Method m = null;
        try {
            m = object.getClass().getMethod(methodName, param);
        } catch (Exception e) {
            System.out.println("Can't find method (" +methodName+ ").  " + e);
        }
        return m;
}

kannst du alle Methoden abrufen. Diese Schreibweise akzeptiert nämlich diese Aufrufe zu:
Java:
method(myObj, "parameterloseMethode");
method(myObj, "stringAlsParameterMethode",String.class);
method(myObj, "vieleParameterMethode",String.class, Integer.class, Character.class);

denn den Parameter [c]Class<?>... param[/c] kannst du leer lassen und es wird trotzdem akzeptiert.
 

Ähnliche Java Themen

Neue Themen


Oben