2017-08-10 78 views
-2

我的代码中有错误。Java - 代码中的错误代码

我有这两个名单:

public static final List<Class<? extends Packet>> OUT_PACKETS = Arrays.asList(PacketPing.class); 
public static final List<Class<? extends Packet>> IN_PACKETS = Arrays.asList(PacketPing.class); 

但是,如果我尝试将PacketPing类添加到这个列表,它就会被标记为红色。但为什么?

这里是我的Packet.class:

public interface Packet { 

public void read(ByteBuf byteBuf) throws IOException; 
public void write(ByteBuf byteBuf) throws IOException; 
} 

这是我PacketPing.class:

public class PacketPing implements Packet { 

private long time; 

public PacketPing(){ } 
public PacketPing(long time){ this.time = time; } 

@Override 
public void read(ByteBuf byteBuf) throws IOException { 
    this.time = byteBuf.readLong(); 
} 

@Override 
public void write(ByteBuf byteBuf) throws IOException { 
    byteBuf.writeLong(this.time); 
} 

public long getTime() { return time; } 
} 

提前感谢!

编辑: 这是我的IDE说什么,但是从没有什么工作...... Link to the screenshot

而且我用Java 8

+0

你能还写了一个错误,你getti NG? –

+0

您是否正在导入PacketPing类? – khriskooper

+0

对我来说编译得很好。请提供您的编译器错误。 – daniu

回答

1

其更改为这个特定的方式,如果你使用java7:

public static final List<Class<? extends Packet>> OUT_PACKETS = Arrays.<Class<? extends Packet>>asList(PacketPing.class); 

在java8你的声明是正确的,并会被编译罚款

+0

不幸的是,它并没有为我工作 – zettee

+0

@zteetee在我的环境中这个作品。至少它是可编译的。你使用哪个Java版本? – Jens

+0

我使用Java 8 – zettee