我有一个程序将请求发送到服务器。请求有很多不同的类型,每种都有自己的类。例如,我有一个checkServerOnlineRequest向服务器发送一条短消息,或者一个getAmountOfGoldRequest向服务器发送一条非常不同的消息。

class CheckServerOnlineReq{
    static final byte requestID = 1;
    byte[] message;

    void setMessage(byte messageNumber){
        message = new byte[2];
        message[0] = messageNumber;
        message[1] = requestID;
    }
}


要发送请求,我有一个Client类。它具有称为staticsend方法,我想接受任何类型的请求(即,许多不同的类)

我的问题是,如何设置send()的参数以允许将任何类型的请求作为参数给出。

最佳答案

规范的方法是声明一个接口,并使具体的请求类实现该接口:

public interface IRequest { ... }

public class CheckServerOnlineRequest implements IRequest { ... }
public class GetAmountOfGoldRequest implements IRequest { ... }


然后send()方法可以接受IRequest作为其参数。

public static void send(IRequest request) { ... }

关于java - 使用不同对象作为参数调用的相同方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10110498/

10-12 23:44