这是关于风格的问题。这种情况最简洁的解决方案是什么:
我有一个Runnable类:
class R implements Runnable {
public void run(){
System.out.print("hello")
}
}
另一个以这样开始这个类的类:
Thread t = new Thread(new R());
t.start;
我的问题是,如果我需要运行以执行更多不同的操作,具体取决于启动线程的类中选择的单选按钮,那么将它传递给Runnable类的最佳方法是什么?
我应该创建一个构造函数并添加一个布尔巫婆动作来执行吗?或者在运行线程之前创建一个公共布尔值并将其设置为true false?或者我应该用不同的动作在R类中定义一个Enum并传递给它?或者其他一些方式?
答案 0 :(得分:1)
我同意最好的方法是让Runnable的构造函数接受执行所需的任何参数。例如:
class R implements Runnable {
private final boolean myBool;
public R(boolean myBool) {
this.myBool = myBool;
}
public void run(){
if (myBool) {
System.out.print("hello");
} else {
System.out.print("goodbye");
}
}
}
一般而言,制作公共全局变量(您提及的另一种选择)是不好的做法。上面列出的方法可以确保封装;只有需要了解价值的东西才能知道。这可以确保随着系统变得越来越复杂,没有其他类会弄乱您的值: - )