### Question:
Provider { public static <P, V extends P> Provider useValue(Class<P> provide, V useValue) { return new Provider(provide, null, useValue); } private  Provider(Class<?> provide, Class<?> useClass, @Nullable Object useValue); static Provider[] of(Class<?>... classes); static Provider of(Class<P> clazz); static Provider useClass(Class<P> provide, Class<C> useClass); static Provider useValue(Class<P> provide, V useValue); Class<?> getProvide(); @Nullable Object getUseValue(); Class<?> getUseClass(); @Override String toString();  }### Answer:
@Test public void testUseValue() { Provider p = useValue(Number.class, 99); assertThat(p.getProvide()).isEqualTo(Number.class); assertThat(p.getUseClass()).isNull(); assertThat(p.getUseValue()).isEqualTo(99); assertThat(p.toString()).contains("java.lang.Number -> useValue: java.lang.Integer"); }