2016-11-25 19 views
0

我制作了TextMessage(org.springframework.web.socket.TextMessage)的副本,但IDE(eclipse release 4.5.2)提示我3个错误。spring-websocket TextMessage的副本,但错误

TextMessage in spring framework

正如你看到的,唯一的变化是包。

package com.hzh.h5.server.util; 

import java.nio.charset.Charset; 

import org.springframework.web.socket.AbstractWebSocketMessage; 

public final class TextMessage extends AbstractWebSocketMessage<String> { 

private static final Charset UTF8_CHARSET = Charset.forName("UTF-8"); 

private final byte[] bytes; 

public TextMessage(CharSequence payload) { 
    super(payload.toString(), true); 
    this.bytes = null; 
} 

public TextMessage(byte[] payload) { 
    super(new String(payload, UTF8_CHARSET)); 
    this.bytes = payload; 
} 

public TextMessage(CharSequence payload, boolean isLast) { 
    super(payload.toString(), isLast); 
    this.bytes = null; 
} 


@Override 
public int getPayloadLength() { 
    return asBytes().length; 
} 

public byte[] asBytes() { 
    return (this.bytes != null ? this.bytes : getPayload().getBytes(UTF8_CHARSET)); 
} 

@Override 
protected String toStringPayload() { 
    String payload = getPayload(); 
    return (payload.length() > 10 ? payload.substring(0, 10) + ".." : payload); 
} 

}

错误提示是这样的, '构造AbstractWebSocketMessage(T)是不可见的'。 error tip

为什么我有错误,但spring-websocket不是?

回答

0

AbstractWebSocketMessage类是public的, 但构造函数是包的作用域。 因此,因此“不可见”您的代码。

扩展AbstractWebSocket的两个类是TextMessage和BinaryMessage(它们是最终的)