Compiled from "InterfaceMethod.java"
public interface com.google.devtools.build.android.desugar.testdata.java8.InterfaceMethod {
  public abstract java.util.List<java.lang.String> defaultMethodReference(java.util.List<java.lang.String>);
  public abstract java.lang.String defaultInvokingBootclasspathMethods(java.lang.String);
  public abstract java.util.List<java.lang.String> staticMethodReference(java.util.List<java.lang.String>);
  public abstract java.util.List<java.lang.String> lambdaCallsDefaultMethod(java.util.List<java.lang.String>);
  public abstract boolean startsWithS(java.lang.String);
}
