Я пытаюсь изучить темы, и у меня есть проблема. Поскольку метод run() является общедоступным() доступом, поэтому любой, кто может ссылаться на мой экземпляр класса, может его использовать. Поэтому я хочу предотвратить это, и есть способ использовать анонимный внутренний класс. Но я слышал, что это можно сделать, используя currentThread и сравнить его с заданным потоком. Как я могу это достичь?Как предотвратить метод run()?
Предположим, что это:
class OnlyConcept implements Runnable {
OnlyConcept() {
new Thread(this).start();
}
public void run() {
// call methods or do something meaningful
}
}
Вместо этого вы можете использовать внутренний или анонимный экземпляр «Runnable». – MadProgrammer
. Вы обеспокоены безопасностью? Если это так, вы обязательно не решает проблему, не позволяя другому программисту, имеющему доступ к вашему классу, вызывать данный метод. – Tarik
Вы не можете предотвратить случай, когда ваш метод 'run' вызывается, потому что злоумышленник может использовать отражение. Вы можете только предотвратить этот код r не случайно. Но даже этого, вероятно, не произойдет. –