从具有工具的两个不同类调用方法

时间:2013-12-08 12:57:54

标签: java

好的,所以我必须创建一个consoleprint接口类和另外两个实现它的类

一个类只是让我打印文本,另一个你可以看到的是字符串拆分器。到目前为止,我的测试人员遇到了问题

public interface ConsolePrint {

    public void printInfo(String infoToPrint);

}

public class SimplePrint implements ConsolePrint {

    public void printInfo (String infoToPrint) {
        printInfo("Heading this is not fancy");
    }
}

public class FancyPrint implements ConsolePrint {

    public void printInfo (String printInfo) {
        for (String splitter: printInfo.split("", 1)){
             System.out.println(splitter);
          }
    }
}

以下是测试人员我从

中遇到问题
import java.util.*;

public class ConsolePrintTest {

    public static void main(String[] args) {
    }

    SimplePrint mySp = new SimplePrint();
    FancyPrint myFp = new FancyPrint();

    myFp.printInfo(); <-----error appearing here

}

任何帮助都会非常感谢

3 个答案:

答案 0 :(得分:3)

您需要将方法调用移至main方法(或至少某些方法)。目前它不在方法中 - 只有声明(字段,方法,嵌套类型等)可以位于类的顶层。

此外,您当前没有将参数传递给printInfo方法,但

所以这没关系:

public class ConsolePrintTest {
    public static void main(String[] args) {
        FancyPrint myFp = new FancyPrint();

        myFp.printInfo("some string");
    }
}

请注意:

  • 我删除了班级中的导入,因为它无关紧要
  • 我删除了mySp声明,因为该变量从未使用过
  • 您目前没有使用类实现接口的事实。您可能需要考虑:

    ConsolePrint printer = new FancyPrint();
    printer.printInfo("some string");
    

正如评论中所述,您的SimplePrint实现也无条件地进行了修复,因此需要修复嵌套问题。

答案 1 :(得分:1)

将语句移到某个方法(main中):

public static void main(String[] args) {


    SimplePrint mySp = new SimplePrint();
    FancyPrint myFp = new FancyPrint();

    myFp.printInfo("Test String"); //No error now
}

答案 2 :(得分:0)

你需要在printInfo方法中解析一个参数,因为没有方法不带任何名为printInfo的参数。

尝试: myFP.printInfo(“Hello world”);

此外,调用SimplePrint实现时会出现另一个错误,因为它永远不会停止递归调用相同的函数。