Java 使用类字符串的字符数组

Java 使用类字符串的字符数组,java,Java,我正在尝试写一个根据家庭作业有方法的类。类输入是转换为字符数组的字符串。我想在方法originalChar中以字符串形式返回char数组。这是我的密码: public class Problem5 { public static void main(String[] args) { CharacterArray array1 = new CharacterArray("Cool"); System.out.println(array1.

我正在尝试写一个根据家庭作业有方法的类。类输入是转换为字符数组的字符串。我想在方法
originalChar
中以字符串形式返回char数组。这是我的密码:

public class Problem5 {
    public static void main(String[] args) {
        CharacterArray array1 = new CharacterArray("Cool");
        System.out.println(array1.originalChar());
    }
}

class CharacterArray {
    char[] storage;
    String formForReturn;

    CharacterArray() {
    }

    CharacterArray(String s) {
        char[] storage = new char[s.length()];
        for (int i = 0; i < s.length(); i++) {
            storage[i] = s.charAt(i);
        }
    }

    public String originalChar() {
        String formForReturn = new String(storage);
        return formForReturn;
    }
}
公共类问题5{
公共静态void main(字符串[]args){
CharacterArray array1=新的CharacterArray(“酷”);
System.out.println(array1.originalChar());
}
}
类字符数组{
字符[]存储;
字符串formForReturn;
CharacterArray(){
}
字符数组(字符串s){
char[]存储=新字符[s.length()];
对于(int i=0;i

我得到的错误是NullPointerException,据我理解,这意味着我试图引用一些不存在的东西。我不确定如何对此进行故障排除以及如何解决此问题。非常感谢您的帮助。

访问实例变量
char[]存储的方法
使用表示当前对象的
这个
关键字。否则,对于当前解决方案,返回的内容为空,这将导致NullPointerException。因为您创建了另一个存储,而不是使用类中现有的存储

您还可以用更短的方式编写
originalChar()
方法:

class CharacterArray {
    char[] storage;

    CharacterArray() { }

    CharacterArray(String s) {
        this.storage = new char[s.length()];
        for (int i = 0; i < s.length(); i++) {
            storage[i] = s.charAt(i);
        }
    }

    public String originalChar() {
        return new String(this.storage);
    }
}
类字符数组{
字符[]存储;
CharacterArray(){}
字符数组(字符串s){
this.storage=新字符[s.length()];
对于(int i=0;i
char[]storage
错误。因为您创建了另一个
存储
,它就在该方法中。您应该使用
this.storage
或仅删除
char[]
此操作有效。非常感谢。我总是把
这个
关键字搞砸了。再次感谢