2015-06-23 5 views
-5

Как мне создать такой метод? Например, метод, с которым я в настоящее время работает, возвращает объект интерфейса, реализуемый классом метода. Функция метода заключается в том, чтобы добавить элемент в список (* на данный момент метод возвращает нуль, потому что я не знаю, как вернуть нужное значение):Метод, который возвращает объект, который его назвал

public ListInterface<T> insertFirst(T item) { 
    Arraylist[0] = item; 
    return null; 
} 

Конструктор реализующего класса (* Arraylist, empty и defCap уже были созданы в начале класса); Я предполагаю, что объектом любого класса, реализующего интерфейс, может быть возвращаемое значение метода выше (???); Следует также заметить, что инстанцировании объект из класса TheList инициализировать переменные:

public TheList() 
{ 
    Arraylist = (T[]) new Object[defCap]; 
    empty = true; 
} 
+5

Итак, в чем ваш вопрос? Неясно, что вы спрашиваете. – dnuka

+0

'return this;'? –

+0

Я спрашиваю, как создать метод, который возвращает объект, который его вызвал (извините, если это было не ясно). Редактировать: СПАСИБО ВАМ BEN KNOBLE !! – Myko

ответ

0

this относится к «текущий объект». Чтобы вернуть его, используйте return this;.

2

Если я правильно понял ваш вопрос, то,

public ListInterface<T> insertFirst(T item) { 
    Arraylist[0] = item; 
    return null; 
} 

должно быть что-то вроде

public static <T> List<T> insertFirst(T item) { 
    List<T> al = new ArrayList<>(); 
    al.add(item); 
    return al; 
} 

, который метод, общий для типа T, который возвращает List<T> из item. Вы также можете использовать Collections.singletonList(T)

public static <T> List<T> insertFirst(T item) { 
    return Collections.singletonList(item); 
} 

Который неизменен, если вам нужен изменяемый список вы можете использовать мой первый пример или

public static <T> List<T> insertFirst(T item) { 
    return new ArrayList<>(Collections.singletonList(item)); 
} 
Смежные вопросы