这是一个关于风格的问题。对于这种情况,最干净的解决方案是什么:
我有一个 Runnable 类:
class R implements Runnable {
public void run(){
System.out.print("hello")
}
}
另一个类像这样启动这个类:
Thread t = new Thread(new R());
t.start;
我的问题是,如果我需要运行来做一些更不同的事情,具体取决于启动线程的类中选择的单选按钮,将其传递给 Runnable 类的最佳方法是什么?
我应该创建一个构造函数并添加一个 boolean 女巫操作来执行吗?或者在运行线程之前创建一个公共(public) boolean 值并将其设置为 true false?或者我应该在 R 类中定义一个具有不同操作的枚举并将其传递?或者其他方式?
最佳答案
我同意最好的方法是让 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");
}
}
}
一般来说,创建公共(public)全局变量(您提到的另一种选择)是不好的做法。上面列出的方法保证了封装性;只有需要了解值(value)的人才知道它。这可以确保当您的系统变得更加复杂时,没有其他类会扰乱您的值:-)
关于java - 根据另一个类中的选项修改一个类的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27205266/