我正在尝试向公司发送消息;我使用的接口包含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等,因此该代码也不会明显运行。我无法在此处添加代码,因为我将无法全部解释。
答案 0 :(得分:0)
如果我正确理解initialiseCompany()
,只需初始化Sender
对象的公司。这意味着您需要添加一个private Company company;
字段,然后将其设置为正确的值:
this.company = myCompany;
然后,sendThis()
应该只调用sendMessage()
:
this.company.sendMessage(myMessage);
注意:我假设您将my_Message
重命名为myMessage
以符合Java命名约定。