blob: 343d9e7b39be6f789d178c2dbcaa368ca396cfd8 [file] [log] [blame]
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";
}
}