我正在做一些不包含答案的试题,我已经被困了一段时间。我有这个接口(stringcombiner.java)
package section3_apis.part1_interfaces;
public interface StringCombiner {
String combine(String first, String second);
}
以及这个工厂(combinerfactory.java)
package section3_apis.part1_interfaces;
public class CombinerFactory{
/**
* This method serves a StringCombiner that will surround the given arguments with double quotes,
* separated by spaces and the result surrounded by single quotes.
*
* For example, the call
* combiner.combine("one", "two")
* will return '"one" "two"'
* @return quotedCombiner
*/
static StringCombiner getQuotedCombiner() {
//YOUR CODE HERE (and remove the throw statement)
throw new UnsupportedOperationException("Not implemented yet");
}
我摆弄它已经有一段时间了,但我不能解决它。到目前为止我尝试的是:我试图让combinerfactory实现接口,然后添加一个重写,但是我不明白接下来如何在getquotedcombiner中使用字符串combine。我还尝试在getquotedcombiner中创建一个新的stringcombiner示例,但我很确定这不是我应该做的。当我尝试其中一种方法时,它会要求我输入combine中的值,但最终目标是使用junit测试。我假设我需要放置一些占位符或者一个实现这个方法的主类,但是仍然让这个方法打开,以便从外部(通过测试)使用。我在这里有点胡扯,只是想把我的想法写在纸上,关于我认为我应该做什么。
我希望能就如何解决这个问题提供一些正确的指导。
2条答案
按热度按时间wkftcu5l1#
假设您只能在
getQuotedCombiner
方法,则需要返回实现StringCombiner
接口。例如:使用java 8,您可以使用lambda表达式简化它:
例如,如果练习允许您创建其他类,您可以添加一个新类
QuotedStringCombiner
实现接口的:在街上
getQuotedCombiner
方法CombinerFactory
您可以返回此类的新示例:或者,实现singleton模式,以避免每次请求引用的组合器时都创建示例:
zazmityj2#
换个衣服就行了
throw
语句,其中包含执行方法所需的操作所需的代码。要使用它,请将示例创建添加到
getQuotedCombiner
: