Подскажите почему такую запись
interface DBObject {
DBObject initializeIdAndName(long id,String name); //DBObject получается здесь тип метода ? Как например String/int?
нельзя заменить вот такой :
interface DBObject {
initializeIdAndName(); //без аргументов long id, String name и без типа метода
++ в классе User реализовал бы объявленный в интерфейсе метод вот так :
public User initializeIdAndName(long id, String name) {
this.id = id;
this.name = name;
return this;
и если не сложно
public User initializeIdAndName(long id, String name) {
this.id = id;
this.name = name;
return this; //как здесь отрабатывает return this? p.s - ушел искать в комментах )package com.javarush.task.task13.task1306;
/*
Баг в initializeIdAndName
*/
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;
this.name = name;
return this;
}
@Override
public String toString() {
return String.format("The user's name is %s, id = %d", name, id);
}
}
}