我有两个选项可以从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
}
{
我想知道在 MyThread 中定义 someMehod()方法的优缺点。
两种情况之间存在差异。
答案 0 :(得分:1)
简单:使用所需的最小范围和最严格的可见性。
如果someMethod()
仅在MyThread
中使用,则显然将其放在MyThread
中,并将其设为private
。
如果ParentClass
也使用someMethod()
,请将其放入ParentClass
。如果仅someMethod()
和ParentClass
调用MyThread
,请将其设为private
。如果从其他包类(相同包)调用它,请将其打包为私有或protected
。如果从子类调用它,则将其设为protected
。如果从其他包中调用它,请将其设为public
。