gpt4 book ai didi

java - 根据另一个类中的选项修改一个类的操作?

转载 作者:行者123 更新时间:2023-12-01 12:12:14 25 4
gpt4 key购买 nike

这是一个关于风格的问题。对于这种情况,最干净的解决方案是什么:

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com