从runnable访问方法的正确方法

时间:2014-09-01 06:31:06

标签: java runnable

我有两个选项可以从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()方法的优缺点

两种情况之间存在差异。

1 个答案:

答案 0 :(得分:1)

简单:使用所需的最小范围和最严格的可见性。

如果someMethod()仅在MyThread中使用,则显然将其放在MyThread中,并将其设为private

如果ParentClass也使用someMethod(),请将其放入ParentClass。如果仅someMethod()ParentClass调用MyThread,请将其设为private。如果从其他包类(相同包)调用它,请将其打包为私有或protected。如果从子类调用它,则将其设为protected。如果从其他包中调用它,请将其设为public