请考虑以下方法:
public Guid BookId { get; set; }
public Book Book { get; set; }
public int Number { get; set; }
public AcquisitionDetail AcquisitionDetail { get; set; }
可能存在public async Task<IEnumerable<InventoryItem>> GetInventoryItemsAsync()
{
return await schoolLibraryContext.InventoryItems.Include(inventoryItem => inventoryItem.Book)
.Include(inventoryItem => inventoryItem.AcquisitionDetail)
.ToListAsync();
}
是static void parse<T>(String input, T instance)
类型的情况。如何获得T
的子类型?请注意,目前List
中没有元素。这样做例如List
是没有选择。
如果List
的类型为List[0].runtimeType
,我想获取T
。
如何在Dart中做到这一点?
答案 0 :(得分:0)
该特殊功能不可用,因为它会使摇树变得复杂。
根据您的用例,您也许可以摆脱类似的情况:
void parseList<T>(String input, List<T> instance) {
// T is now the static type of List<T>
}
但是,如果List
的类型是静态未知的,则将无法使用。
答案 1 :(得分:0)
(有点)可以做到,但是这是一个非常丑陋的解决方法。一个条件是您必须必须初始化列表才能访问其类型。
List<Something> someList = new List<Something>();
String type = someList.runtimeType.toString(); // List<Something>
然后您就可以读取类型并对其进行处理。
答案 2 :(得分:-2)
我不确定您要做什么,但是也许您可以编写这样的方法:
static void parseList<T>(String input, List<T> list)
请提供更多背景知识,以获得更好的答案。