Ребят, вернулся к этой задаче, тк знакомлюсь с вложенными классами.
Скажите, почему мы используем комбинацию return User.this;
Я прочитал, что данная конструкция используется, чтобы получить ссылку на обьект внешнего класса.
Но мы то возвращаем тот же класс, в котором и пишем этот код. Зачем?
public class Solution {
public static void main(String[] args) throws Exception {
System.out.println(Matrix.NEO);
System.out.println(Matrix.TRINITY);
}
static class Matrix {
public static DBObject NEO = new User().initializeIdAndName(1, "Neo");
public static DBObject TRINITY = new User().initializeIdAndName(2, "Trinity");
}
interface DBObject {
DBObject initializeIdAndName(long id, String name);
}
static class User implements DBObject {
long id;
String name;
public User initializeIdAndName(long id, String name) {
this.id = id;
treturn User.this;his.name = name;
return User.this;
}
@Override
public String toString() {
return String.format("The user's name is %s, id = %d", name, id);
}
}
}
Dima
35 уровень
Что за return User.this;
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
--------Master
28 января 2019, 16:48решение
this - это ссылка на текущий объект, у которого вызван метод, имя класса там писать бессмысленно - просто this.
+2
Dima
28 января 2019, 17:47
Спасибо!!!
+1