是否有可能在Java或C#中实例化泛型类型的对象? [英] Is it possible to instantiate an object of generic type in Java or C#?
本文介绍了是否有可能在Java或C#中实例化泛型类型的对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
例如,在Java中,如果我有一个参数化类,是否可以执行以下操作?
public class MyClass< T> {
public void aMethod {
..
T object = new T();
..
}
..
}
在Java中,我认为这是不可能的,因为编译器不知道要调用哪个构造函数。但在C#中?我不知道这门语言,我读过许多黑暗的东西都可以做的,所以我只是想知道。
解决方案如果你在T类型上设置约束,使其具有无参数构造函数,那么在C#中这是可能的。
public class MyClass< T>其中T:new(){
public void aMethod {
..
T object = new T();
..
}
..
}
请参阅此处。
For example, in Java, if I have a parameterized class, is it possible to do the following?
public class MyClass<T>{
public void aMethod {
..
T object = new T();
..
}
..
}
In Java, I think it is not possible, because the compiler doesn't know what constructor to call. But in C#? I don't know the language and I've read that many dark things can be done, so I was just wondering..
解决方案
this is possible in C# if you are setting constraint on T type to have parameterless constructor.
public class MyClass<T> where T:new(){
public void aMethod {
..
T object = new T();
..
}
..
}
See here.
这篇关于是否有可能在Java或C#中实例化泛型类型的对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文