1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.common.reflection.qual.MethodVal;
/** Example used in the reflection resolution section of the Checker Framework manual. */
public class NullnessReflectionExampleTest {
@NonNull Location getCurrentLocation() {
// ...
return new Location();
}
String getCurrentCity()
throws NoSuchMethodException, SecurityException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException {
@MethodVal(
className = "NullnessReflectionExampleTest",
methodName = "getCurrentLocation",
params = 0)
Method toLowerCase = getClass().getMethod("getCurrentLocation");
Location currentLocation = (Location) toLowerCase.invoke(this);
return currentLocation.nameOfCity();
}
}
class Location {
String nameOfCity() {
return "Seattle";
}
}
|