好的,所以我必须创建一个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
}
任何帮助都会非常感谢
答案 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实现时会出现另一个错误,因为它永远不会停止递归调用相同的函数。