2017-08-10 138 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