在下面的代码中,我不明白以下几行是什么意思
a.if (messageProvider == null) and ..
下面我们正在打印“你必须设置......”
但“StandardOutMe ... getname())”
的重点是什么b.{
throw new RuntimeException( "You must set the property messageProvider of class:" +
StandardOutMessageRenderer.class.getName());
}
以下是完整的程序
1. public class StandardOutMessageRenderer implements MessageRenderer
{
private MessageProvider messageProvider;
@Override
public void render()
{
if (messageProvider == null)
{
throw new RuntimeException( "You must set the property messageProvider of class:" +
StandardOutMessageRenderer.class.getName());
}
System.out.println(messageProvider.getMessage());
}
@Override
public void setMessageProvider(MessageProvider provider)
{
this.messageProvider = provider;
}
@Override
public MessageProvider getMessageProvider()
{
return this.messageProvider;
}
}
答案 0 :(得分:0)
在此代码中,您有一个StandardOutMessageRenderer类,它实现了MessageRenderer接口,并为render(),setMessageProvider()和getMessageProivider()提供了实现。
该类有一个MessageProvider类型的实例变量,需要通过调用setMessageProvider()方法设置它的值。
render()将首先检查是否已设置messageProvider,如果调用render()而不设置值,则会抛出显示类名称的RuntimeException,否则它会将消息打印到控制台并且getMessageProvider()只是实例变量的getter。
答案 1 :(得分:0)
该类提供了一个方法render()
,用于控制messageProvider.getMessage()
的输出。
为此,必须设置messageProvider
。