Tag: generics

在某些Javagenerics演员中,types安全警告的含义是什么?

Java警告的含义是什么? types安全性:从对象到列表的转换实际上是针对删除的types列表进行检查 当我尝试将对象转换为具有通用信息的types时,出现此警告,如下面的代码所示: Object object = getMyList(); List<Integer> list = (List<Integer>) object;

将枚举转换为List <string>

如何将下面的枚举转换为string列表? [Flags] public enum DataSourceTypes { None = 0, Grid = 1, ExcelFile = 2, ODBC = 4 }; 我无法find这个确切的问题,这个枚举到列表是最接近的,但我特别希望List<string>

如何在运行时读取类上的属性?

我想创build一个通用的方法,将读取一个类的属性,并在运行时返回该值。 我该怎么做? 注意:DomainName属性属于DomainNameAttribute类。 [DomainName("MyTable")] Public class MyClass : DomainBase {} 我想要生成的是: //This should return "MyTable" String DomainNameValue = GetDomainName<MyClass>();

为什么IEnumerator <T>从IDisposableinheritance,而非genericsIEnumerator没有?

我注意到genericsIEnumerator<T>从IDisposableinheritance,但非generics接口IEnumerator不。 为什么这样devise? 通常,我们使用foreach语句来通过一个IEnumerator<T>实例。 foreach生成的代码实际上有最后调用Dispose()的try-finally块。

实例化types参数的对象

我有一个模板类如下: class MyClass<T> { T field; public void myMethod() { field = new T(); // gives compiler error } } 如何在我的课堂上创build一个新的T实例?

Mockito:使用通用参数进行validation

用Mockito我可以做到以下几点: verify(someService).process(any(Person.class)); 但是如果process需要一个Collection<Person>我怎么写呢? 无法弄清楚如何正确写入。 只是得到语法错误…

无效的C#generics?

我有一个通用的方法,接受请求并提供响应。 public Tres DoSomething<Tres, Treq>(Tres response, Treq request) {/*stuff*/} 但是我并不总是希望得到我的请求的响应,而且我也不总是希望提供请求数据来获得响应。 我也不想全部复制和粘贴方法做一些小改动。 我想要的是能够做到这一点: public Tre DoSomething<Tres>(Tres response) { return DoSomething<Tres, void>(response, null); } 这在某种程度上是可行的吗? 看来专门使用void不起作用,但我希望能find类似的东西。

当扩展其他包的S4方法时,Rd文件名会发生冲突

实际的问题 如何避免Rd文件名称冲突 一个S4generics和它的方法不一定全都在同一个包中定义(包含(一些)定制方法的包依赖于包含generics的包) 使用roxygenize()包中的roxygenize()生成实际的Rd文件? 我不确定这是一个roxygen2问题还是一个普通的问题,当generics和它的方法分散在不同的包(如果你遵循一个模块化的编程风格,一般来说,恕我直言,一定是一个现实的用例场景)。 build议如何处理这些情况? 插图 在包pkga 假设在包pkga你定义了一个通用方法foo ,并且你已经提供了roxygenize()拾取的相应roxygen代码来生成Rd文件: #' Test function #' #' Test function. #' #' @param … Further arguments. #' @author Janko Thyson \email{janko.thyson@@rappster.de} #' @example inst/examples/foo.R #' @docType methods #' @rdname foo-methods #' @export setGeneric( name="foo", signature=c("x"), def=function( x, … ) { standardGeneric("xFoo") } ) 当roxygenizing()你的包时,一个名为foo-methods.Rd的文件被创build在man子目录中,作为可能为这个generics方法创build的所有方法的参考Rd文件。 到现在为止还挺好。 如果这个通用的所有方法也是你的包的一部分,一切都很好。 例如,这个roxygen代码将确保将文档添加到foo-methods.Rd用于foo-methods.Rd的ANY方法: #' […]

性能:从generics派生的types

我遇到了一个我不能理解的性能问题。 我知道如何解决,但我不明白为什么会发生。 这只是为了好玩! 让我们来谈谈代码。 我尽可能简化代码来重现问题。 假设我们有一个generics类。 它里面有一个空的列表,在构造函数中用T做一些事情。 它有Run方法调用列表上的IEnumerable<T>方法,例如Any() 。 public class BaseClass<T> { private List<T> _list = new List<T>(); public BaseClass() { Enumerable.Empty<T>(); // or Enumerable.Repeat(new T(), 10); // or even new T(); // or foreach (var item in _list) {} } public void Run() { for (var i = 0; i < 8000000; i++) […]

通过测验了解C#中的嵌套generics类

在和同事谈论C#时,他向我展示了一些C#代码,我必须预测它的输出。 这看起来很简单,但事实并非如此。 我真的不明白为什么C#这样做。 代码: public class A<T1> { public T1 a; public class B<T2> : A<T2> { public T1 b; public class C<T3> : B<T3> { public T1 c; } } } class Program { static void Main(string[] args) { A<int>.B<char>.C<bool> o = new A<int>.B<char>.C<bool>(); Console.WriteLine(oaGetType()); Console.WriteLine(obGetType()); Console.WriteLine(ocGetType()); Console.ReadKey(); } } 输出是: System.Boolean System.Char System.Int32 […]