2016-04-10 6 views
-1

を使用してジェネリック型を変換し、私はこれを行うための機会で特に興味を持っています:ストリーム

List<Object> a = new ... 
List<Integer> b = (List<Integer>) a; 

私のオブジェクトは、私がdowncatingをしたいInteger.parseInt(object.toString()); 後にint型を返します、私はいくつかの理由により不可能なことを覚えています。理由を教えてください。 Java 8のツールを使用して、最も洗練された慣習方法を教えてください。

+1

'List 'は 'List '(またはその逆)でないので不可能です。 –

+0

@PaulBoddington、ありがとう。リストはリストであり、キャストするものはありません。その質問を削除します。 –

+1

'Integer.parseInt(object.toString());'は四角いボックスを円に合わせようとしているようです。 – Tunaki

答えて

1

新しいリストを作成するとできます。

List<Integer> b = a.stream() 
        .map(Object::toString) 
        .map(Integer::parseInt) 
        .collect(Collectors.toList()); 

(これはダウンキャストとは関係ありません)。

+0

'Integer :: valueOf'は、すでにボックス化されたバージョンの' int'を返します。 – Flown

+1

@Flown True。私は 'Integer :: valueOf'も使いますが、質問にマッチする' parseInt'を書いています。 –