如何使方法接收一个可以是字符串或char数组的参数?

时间:2012-11-13 23:48:08

标签: java

用户必须能够将MyString对象传递给arr = {'g','o','o','d','b','y','e' }这样的字符数组,或者像“hello”这样的字符串传递 我不知道从哪里开始,因为我不知道如何制作一个可以接收双重类型的方法。

2 个答案:

答案 0 :(得分:3)

只是重载你的方法:

public static String foo(String s) {
    // do something 
}

public static String foo(char[] s) {
    return foo(new String(s));
}

编辑 在标题中,您说方法,但在您的示例中,您会显示构造函数。无论如何,同样的想法可以适用于两者。

public MyString(String s) {
    // do something
}

public MyString(char[] s) {
    this(new String(s));
}

答案 1 :(得分:1)

我认为这样的事情会起作用

public class MyString {

    private char[] val

    public MyString(String s) {
        val = s.toCharArray();
    }

    public MyString(char[] c) {
        val = c;
    }

    public String toString() {
        return new String(val);
    }

    public char charAt(int i) {
        return val[i];
    }
}

这是非常镂空的,但这是我接近它的方式。希望它有所帮助:)