如果有一個TCP/UDP通信工廠這樣通用工廠類實例化
public enum IoFactory {
// Singleton
INSTANCE;
public <T> Io<T> create(T type, TransportProtocol protocol) {
...
return ...;
}
}
它創建Io
接口:
public interface Io<T> {
public void send(T msg);
public T receive();
}
然而
,當我創建的Io
一個實例與
IoFactory factory = IoFactory.INSTANCE;
Io<TestMessage> u = factory.create(TestMessage.class, TransportProtocol.UDP);
我收到一個彙編錯誤,說正確instantia應該是
Io<Class<TestMessage>> u = factory.create(TestMessage.class, TransportProtocol.UDP);
這是怎麼回事?
'TestMessage.class'的類型是'類',而不是類型的'TestMessage'(它是類對象,而不是一個「TestMessage」類型的對象)。 –
amit