我可能会想象事物,但我似乎在Java中回忆起我可以声明一个字段或参数:
public class BarHandler{
public Class<? extends Foo> fooType;
public ProcessedBar Process(string xml){
Foo foo = fooType.GetInstance();
return foo.process(xml)
}
}
Run Code Online (Sandbox Code Playgroud)
这对于工厂样式系统非常有用,在这种系统中,您必须能够生成相关类型的新实例.
我试图弄清楚在C#中是否存在这种模拟,或者如果可能这只是Java中可用的东西.
是的,请参阅通用约束.相当于你的例子是:
public class SomeClass<T>
where T : Foo
{
private T fooType;
}
Run Code Online (Sandbox Code Playgroud)
编辑之后的编辑:我相信你指的是通配符,在这种情况下你应该阅读关于泛型的协方差和逆变.
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |