以下代码中的行的含义是什么?

时间:2016-09-08 07:33:36

标签: java

在下面的代码中,我不明白以下几行是什么意思

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;    
        }

        }

2 个答案:

答案 0 :(得分:0)

在此代码中,您有一个StandardOutMessageRenderer类,它实现了MessageRenderer接口,并为render(),setMessageProvider()和getMessageProivider()提供了实现。

该类有一个MessageProvider类型的实例变量,需要通过调用setMessageProvider()方法设置它的值。

render()将首先检查是否已设置messageProvider,如果调用render()而不设置值,则会抛出显示类名称的RuntimeException,否则它会将消息打印到控制台并且getMessageProvider()只是实例变量的getter。

答案 1 :(得分:0)

该类提供了一个方法render(),用于控制messageProvider.getMessage()的输出。

为此,必须设置messageProvider