public class Solution {
public static void main(String[] args) throws Exception {
SimpleObject<String> stringObject = new StringObject<Object>();
}
interface SimpleObject<T> {
SimpleObject<T> getInstance();
}
public static class StringObject<T> implements SimpleObject<String> {
public SimpleObject<String> getInstance(){
return null;
}
}
}
Evgenij
24 уровень
Не могу понять почему класс StringObject должен быть статическим
Решен
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
12 марта 2019, 09:55полезный
Вложенный класс объявляется статическим, чтобы не создавать экземпляр внешнего класса при обращении к нему, в данном случае чтобы не создавать новые экземпляры new Solution().
Здесь это нужно просто для того, чтобы ограничить твой полет фантазии, и суметь формализовать тесты валидатора.
Т.е. он не может работать как валидатор шредингера: иметь тест и для статического класса, и для не статического, т.к. они взаимоисключающие, и один из тестов будет не пройден.
+2