1 回答

TA贡献2039条经验 获得超7个赞
您可以通过以下方式做得更好:
public abstract class MessageEncoder<T extends Message> {
protected MessageEncoder(Class<? extends T> messageClass) {
GameConstants.RELEASE.register(messageClass, this);
}
/**
* Get the encoded message to send to the client.
*
* @param message The message.
* @return the {@link GamePacket} ready to be sent.
*/
public abstract GamePacket encode(T message);
}
现在子类会做:
public final class ComponentMessageEncoder extends MessageEncoder<ComponentTextMessage> {
ComponentMessageEncoder() {
super(ComponentTextMessage.class);
}
// etc as before
}
这稍微减少了重复,它允许编译器阻止你出错,所以这是一个胜利。
添加回答
举报