Java: тип набора броска для выделения подтипов [копирует]

Я посмотрел на рубиновую документацию для StringIO, и похоже на то, что Вы хотите, StringIO#string , не StringIO#to_s

Таким образом, измените свой код на:

s = StringIO.new
s << 'foo'
s << 'bar'
s.string

35
задан Landon Kuhn 30 October 2009 в 16:50
поделиться

3 ответа

Вы можете транслировать через нетипизированный интерфейс List:

List<A> a = new ArrayList<A>();
List<B> b = (List)a;
44
ответ дан 27 November 2019 в 07:06
поделиться

List является не подтипом List !

JLS даже упоминает, что явно :

Подтип не распространяется через общие типы: T <: U не означает, что C <: C .

1
ответ дан 27 November 2019 в 07:06
поделиться

Вы можете попробовать это:

List<A> a = new ArrayList<A>();
List<B> b = (List<B>) (List<?>) a;

Это основано на ответе jarnbjo, но не используйте необработанные списки.

16
ответ дан 27 November 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: