Open NuhGnod opened 1 year ago
@CallerSensitive
public static Class<?> forName(String className)
throws ClassNotFoundException {
Class<?> caller = Reflection.getCallerClass();
return forName0(className, true, ClassLoader.getClassLoader(caller), caller);
}
forName메서드가 Class<?> 를 반환해서 Class< ? > => Class<? extends Set<>>
로의 다운캐스팅(?)은 허용이 되는 것 같은데 어떻게 생각하시나요?
p.374
하지만 Class<? extends Set<String>>으로의 형변환은 심지어 명시한 클래스가 Set을 구현하지 않았더라도 성공
? extends Set<>
이 Set을 상속받은 클래스들만 가능하다 라는 의미로 알고 있었는데,어떻게 성공하는 건가? 그리고, 나중에 실제 인스턴스를 생성할 때에 문제가 된다고 하는데 왜 그런지?