2015-05-30 2 views
2

Currentlly Я занят небольшой программой java, которая использует общие списки. Я хотел использовать сеттер сейчас (геттер готов). Но проблема в том, что я не в состоянии сделать это, как правило:создание сеттера с общим списком

public void setInventar(Item x) { 
    inventar.insert(Item x) = x; 
} 

Проблема: левая присваивания должен быть переменной

мой добытчик выглядит следующим образом:

public List<Item> getInventar() { 
    return inventar; 
} 

Спасибо за помощь :)

ответ

5

как правило, связующий просто метод, который устанавливает переменную и не делать что-то с уже существующей, так что в вашем случае сеттер будет что-то л икэ:

public void setInventar(List<Item> inventar) { 
    this.inventar = inventar; 
} 

Но если вы хотите добавить элементы к существующему списку (это его, что вы хотите?), вы можете сделать что-то вроде:

public void addToInventar(Item x) { 
    Objects.requireNonNull(inventar); 
    inventar.add(x); 
} 
+0

Спасибо, +1 за давая нам знать о ' Objects.requireNonNull(); '. –

+1

@shekharsuman также будет очень полезно видеть, что это полная подпись, так как этот метод чрезвычайно полезен в конструкторах, где вы можете написать smth как 'this.x = Object.requireNonNull (x);' –

+0

За исключением примера inventar не является параметром addToInventar(), который делает использование requireNonNull() немного нетрадиционным. –

Смежные вопросы