Вот мой следующий код:Что означает «это» ключевое слово в коде?
public class SharedState {
private static final List<SharedState> list = new ArrayList<>();
public SharedState() {
list.add(this); // What does "this" mean here?
System.out.println(list);
}
public static void main(String[] args) {
Thread t1 = new Thread("t1") {
@Override
public void run() {
/* try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
} */
new SharedState();
}
};
Thread t2 = new Thread("t2") {
@Override
public void run() {
new SharedState();
}
};
t1.start();
t2.start();
}
@Override
public String toString() {
return "SharedSate";
}
}
- Мое понимание
this
относится к текущему объекту и здесьlist.add(this)
SharedSate
добавляют к списку, не так ли? Таким образом, это означает, что он вызываетtoString()
, а затем печатаетlist
на консоли. Я прав? Я просто хотел бы знать, как эти две строчки работают:
list.add(this);
System.out.println(list);
@KevinEsche Итак, что я говорю, что 'list.add (this)' как-то вызывает 'toString()' правильно? Потому что это единственный способ добавить элементы в список. –
@KevinEsche Он напечатает все, что определено в '.toString(); ' –
Работает в ocnjonction с' private static final List list = new ArrayList <>(); 'это способ иметь некоторые общие значения приложения в одноэлементном. –
Zorglube