Прошу прощения, если вопрос покажется глупым, но почему не компилируется этот код:
class Main {
public static void main(String[] args) {
System.out.println("Compiled successfully.");
}
private static
private static
class SomeType {}
При компиляции получается следующее:
Main.java:8: error: method bar in class Main cannot be applied to given types;
bar(genericVar.getClass(), genericVar);
^
required: Class
Вижу, что передаётся неверный второй параметр в функцию bar, но интересно узнать почему так? Ведь по логике типы совместимы, да и с первым параметром не возникает проблем.
Сейчас, чтобы избежать ошибки, изменил тип второго параметра в bar() на SomeType, и это меня устраивает, но хочется понять из-за чего не получается скомпилировать именно так.
Ответ
getClass() возвращает тип Class
class Main {
public static void main(String[] args) {
System.out.println("Compiled successfully.");
}
private static
private static
class SomeType {}
Комментариев нет:
Отправить комментарий