所以,起初我有一句话说:
Object input = .... //some come code initialising it
if(input instanceof Set<String>) {
doSomething(input);
}
但是,由于泛型类型信息在运行时被删除,我不能指定它是 aSet<String>
而是 unbounded wildcard Set<?>
。但是我需要将此集合用于与字符串相关的处理,例如附加到 JTextArea,因此当我需要字符串出来时,这种无界通配符类型不是很有用。
所以,我试过这个
Object input = .... //some come code initialising it
if(input instanceof Set<?>) {
doSomething((Set<String>) input);
}
Set<String>
这种转换将它从无界转换为字符串类型(如果输入是 a ,我相信它会是Set
)但这不是很安全,是吗?我收到一条错误消息,说我可以压制未经检查的演员表,但我觉得可能有另一种方法可以解决这个问题。有任何想法吗?
编辑:input
通过从私有 LAN ip 上的服务器套接字的输入流序列化来初始化。