更新:私の質問は重複していると私の問題があります:これは配列でジェネリックを使用することは安全ではありません。しかし、これを修正するために私のコードをどのように変更する必要がありますか?私が思いついたすべてが(このコードは古いと類似している場合は私も知りません)生の種類の警告(更新)
_readWriteThreads = (ReadWriteThread<T, RP, SP>[]) Array.newInstance(ReadWriteThread.class, sc.getSelectorThreadCount());
である。しかし、このコードは、私に警告を与えました。
前の投稿(Raw types warning):
私は、Java開発者ではないんだけど、私は、コードのこの部分で私のプロジェクトで唯一の警告を修正したい:
public abstract class SelectorThread<T extends MMOConnection<T, RP, SP>, RP extends ReceivablePacket<T, RP, SP>, SP extends SendablePacket<T, RP, SP>>
{
protected static final Log _log = new MMOLogger(SelectorThread.class, 1000);
private final AcceptorThread<T, RP, SP> _acceptorThread;
private final ReadWriteThread<T, RP, SP>[] _readWriteThreads;
protected SelectorThread(SelectorConfig sc, IPacketHandler<T, RP, SP> packetHandler) throws IOException
{
_acceptorThread = new AcceptorThread<T, RP, SP>("AcceptorThread", this, sc);
_readWriteThreads = new ReadWriteThread[sc.getSelectorThreadCount()];
for (int i = 0; i < _readWriteThreads.length; i++)
_readWriteThreads[i] = new ReadWriteThread<T, RP, SP>("ReadWriteThread-" + (i + 1), this, sc, packetHandler);
}
...
}
警告:
Type safety: The expression of type ReadWriteThread[] needs unchecked
conversion to conform to ReadWriteThread<T,RP,SP>[]
私がこれを解決するのを手伝ってもらえるか、これを解決するために何を知っておくべきか教えてください。上記の行は<T, RP, SP>
で修正されていますが、これは配列では機能しません。
使用してそれを初期化arを使うのではなく、 'ArrayList>'を使ってくださいレイ。 –