是否有可能在Java或C#中实例化泛型类型的对象? [英] Is it possible to instantiate an object of generic type in Java or C#?

查看:93
本文介绍了是否有可能在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆