ルイス・コロラド州:
私は、コードの次のスニペットを持っています:
Certificate[] a = myFavouriteKeystore.getCertificateChain();
しかし、私は、次のシグネチャを持つメソッドに渡す必要があります。
void setCertificateChain(X509Certificate[] chain);
私は、次の操作を行うことができ?:
setCertificateChain((X509certificate[]) a);
IDE(日食)は、それを受け入れて、私は、コンパイラもありませんが、私の推測では、私が買ってあげるということであると仮定しClassCastException
、すべての配列要素がクラスであることも、ケース内にX509Certificate
またはそのサブクラス。
ユージン:
あなたはなりますClassCastException
、実行時に、はい、。
キャストは、あなたが言っていることを、コンパイラに横たわっているようなものです、本当にあなたを信頼することを指示している-あなたは何をしているか知っていると、コンパイラはキャストが動作することを証明できない場合でも。
あなたにコンパイラリッスン(すべてではない場合は、あなたがするので、例えば文字列を整数にキャストし、それを言うことができない、すなわち、String
最終的なものとサブクラスを持つことができません)が、同時にに注入しますバイトコード checkcast
命令を。