У меня есть два варианта доступа к методу из runnable:
Дело 1:
public class ParentClass{
private void otherMethod(){
// some work
// may call someMethod() from here also
}
class MyThread implements Runnable{
@Override
public void run() {
someMethod();
}
private void someMethod(){
// some work
}
}
}
случай 2:
public class ParentClass{
private void otherMethod(){
// some work
// may call someMethod() from here also
}
class MyThread implements Runnable{
@Override
public void run() {
someMethod();
}
}
private void someMethod(){
// some work
}
{
Я хочу знать, каковы плюсы и минусы определения метода someMehod() внутри MyThread.
И разница между этими двумя случаями.
Простота: используйте наименьший объем и наиболее ограничительную видимость, которая требуется.
Если someMethod()
используется только из MyThread
, то, очевидно, поместите его в MyThread
и сделайте его private
.
Если ParentClass
также использует someMethod()
, поместите его в ParentClass
. Если someMethod()
вызывается только из ParentClass
и из MyThread
, сделайте его private
. Если он вызывается из других классов пакетов (тот же пакет), сделайте его приватным или protected
. Если он также вызван из подклассов, сделайте его protected
. Если он вызывается из других пакетов, сделайте его public
.