接口作为函数的参数-消息

时间:2019-02-15 20:35:54

标签: java

我正在尝试向公司发送消息;我使用的接口包含sendMessage()方法;但是我不确定如何从其他类访问此方法。 我认为我可能会使用匿名类,但我不是100%确定。.

我试图创建一个匿名类,但是我将不得不从我无法访问的接口中重写sendMessage()方法。重写不会破坏接口方法吗?

public interface Company {

void sendMessage(Message my_message);
//i am not able to view whats inside this method 
}

消息基本上是一个包含字符串消息和ID的结构。

如此

     Message consists of:
     -name
     -ID

      public final class Message{
      final String name = "Hello";
      final long ID = "2.000";
      }

我想使用界面来初始化公司。

在另一个名为Sender的类中,我这里有一个initialiseCompany方法和一个sendThis方法:

initialiseCompany将接口作为参数,这是我开始感到困惑的地方。

send这将创建消息,并尝试将其发送到界面中的sendMessage()方法。

public class Sender{
     public void intitaliseCompany(Company myCompany){
      //what i need to complete
     }

     public sendThis(Message my_Message){
     // here I need to send the message in my case my_Message = 'HELLO'
     String inputMessage = my_Message.name;
     //now i need to send the inputMessage to the chosen company
     //using the sendMessage() method from the interface.
     //i am not sure how to access that sendMessage method from that
     //original interface
}

如何从界面初始化公司,然后从其他方法访问sendMessage()接口方法。

此外,由于没有main等,因此该代码也不会明显运行。我无法在此处添加代码,因为我将无法全部解释。

1 个答案:

答案 0 :(得分:0)

如果我正确理解initialiseCompany(),只需初始化Sender对象的公司。这意味着您需要添加一个private Company company;字段,然后将其设置为正确的值:

this.company = myCompany;

然后,sendThis()应该只调用sendMessage()

this.company.sendMessage(myMessage);

注意:我假设您将my_Message重命名为myMessage以符合Java命名约定。