Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 取决于构造函数的可运行函数_Java_Constructor - Fatal编程技术网

Java 取决于构造函数的可运行函数

Java 取决于构造函数的可运行函数,java,constructor,Java,Constructor,在Java中,如何让一个可运行类根据其构造函数选择其函数 例如: Class A implements Runnable { public A(int var) { //things go here } public A(int var1, String var2) { //things go here } public void run() { //do (a) if Constructor A(in

在Java中,如何让一个可运行类根据其构造函数选择其函数

例如:

Class A implements Runnable {

    public A(int var) {
        //things go here
    }

    public A(int var1, String var2) {
        //things go here
    }

    public void run() {
        //do (a) if Constructor A(int var)
        //do (b) if Constructor A(int var1, String var2)
    }
}
您可以这样做:

class A implements Runnable {
  int constructor;

public A(int var) {
    //things go here
    constructor = 1;
}

public A(int var1, String var2) {
    //things go here
    constructor = 2; 
}

public void run() {
    if (constructor == 1) ...
    if (Constructor == 2) ...
}
}

但我建议使用多态性。看起来这是两类不同的对象。

您可以这样做:

class A implements Runnable {
  int constructor;

public A(int var) {
    //things go here
    constructor = 1;
}

public A(int var1, String var2) {
    //things go here
    constructor = 2; 
}

public void run() {
    if (constructor == 1) ...
    if (Constructor == 2) ...
}
}

但我建议使用多态性。看起来这是两类不同的对象。

我将设置一个模式:

我会设置一个模式:


@drum-yeah-使用
if
case
语句:与选择运行任何一段代码的方式相同。@drum-yeah-使用
if
case
语句:与选择运行任何一段代码的方式相同。这与我的建议基本相同,只是我要保持简单:为什么不定义匿名Runnable是为了让您始终坚持使用Runnable接口?不需要引入更多的“类型”来跟踪头部内部。。。(记住这是关于近似函数的。)我想这是一个品味的问题。我认为添加新类型实际上会降低代码的复杂性,如果它们有适当的文档记录和组织。还要注意,这种方法不需要任何条件代码。我们的建议大致相同,只是我会保持简单:为什么不定义匿名Runnable,以便始终坚持Runnable接口?不需要引入更多的“类型”来跟踪头部内部。。。(记住这是关于近似函数的。)我想这是一个品味的问题。我认为添加新类型实际上会降低代码的复杂性,如果它们有适当的文档记录和组织的话。