Questions tagged «generics»

泛型是在多种语言中发现的参数多态形式,包括.NET语言,Java,Swift和Rust。

11
从泛型类中的类型参数创建新对象
我正在尝试在我的通用类中创建一个类型参数的新对象。在我的课程中View,我有2个作为类型参数传递的泛型对象列表,但是当我尝试制作时new TGridView(),TypeScript说: 找不到符号'TGridView 这是代码: module AppFW { // Represents a view export class View<TFormView extends FormView, TGridView extends GridView> { // The list of forms public Forms: { [idForm: string]: TFormView; } = {}; // The list of grids public Grids: { [idForm: string]: TGridView; } = {}; public AddForm(formElement: …


18
使用反射获取Java中通用参数的类型
是否可以获取通用参数的类型? 一个例子: public final class Voodoo { public static void chill(List<?> aListWithTypeSpiderMan) { // Here I'd like to get the Class-Object 'SpiderMan' Class typeOfTheList = ???; } public static void main(String... args) { chill(new ArrayList<SpiderMan>()); } }



6
<T>(尖括号)在Java中是什么意思?
我目前正在学习Java,最近被尖括号(&lt;&gt;)所困扰。它们到底是什么意思? public class Pool&lt;T&gt;{ public interface PoolFactory&lt;T&gt;{ public T createObject(); } this.freeObjects = new ArrayList&lt;T&gt;(maxsize) } 什么&lt;T&gt;意思 这是否意味着我可以创建类型的对象T?
139 java  generics 

15
将通用列表转换为CSV字符串
我有一个整数值列表(列表),并且想生成一个用逗号分隔的字符串。那就是列表中的所有项目输出到一个逗号分隔的列表中。 我的想法... 1.将列表传递给方法。2.使用stringbuilder迭代列表并附加逗号。3.测试最后一个字符,如果它是逗号,则将其删除。 你觉得呢?你有没有什么想法?这是最好的方法吗? 如果将来我不仅要处理整数(当前的计划)而且要处理字符串,长整型,双精度型,布尔型等,我的代码将如何更改?我想让它接受任何类型的列表。
139 c#  generics  .net-3.5 

16
将字符串转换为可为null的类型(int,double等)
我正在尝试进行一些数据转换。不幸的是,许多数据都是字符串形式,应该是int或double等等。 所以我得到的是这样的: double? amount = Convert.ToDouble(strAmount); 这种方法的问题是,如果strAmount为空,如果为strAmount为空,则我希望它等于null,因此当我将其添加到数据库中时,该列将为null。所以我最终写了这个: double? amount = null; if(strAmount.Trim().Length&gt;0) { amount = Convert.ToDouble(strAmount); } 现在可以正常工作,但是我现在有五行代码而不是一行。这使事情更加难以阅读,尤其是当我有大量要转换的列时。 我以为我会使用字符串类和泛型的扩展名来传递类型,这是因为它可以是double或int或long。所以我尝试了这个: public static class GenericExtension { public static Nullable&lt;T&gt; ConvertToNullable&lt;T&gt;(this string s, T type) where T: struct { if (s.Trim().Length &gt; 0) { return (Nullable&lt;T&gt;)s; } return null; } } 但是我得到了错误:无法将类型'string'转换为'T?' 有没有解决的办法?我对使用泛型创建方法不是很熟悉。

6
之间有什么区别?Java泛型中的对象和对象?
我正在使用Eclipse来帮助我清理一些代码以正确使用Java泛型。大多数时候,它在推断类型方面做得非常出色,但是在某些情况下,推断类型必须尽可能地通用:对象。但是Eclipse似乎给了我一个选择,可以在对象类型和“?”类型之间进行选择。 那么之间有什么区别: HashMap&lt;String, ?&gt; hash1; 和 HashMap&lt;String, Object&gt; hash2;
137 java  generics 


7
快速将协议用作数组类型和函数参数
我想创建一个类,可以存储符合特定协议的对象。对象应存储在类型数组中。根据Swift文档协议可以用作类型: 由于它是一种类型,因此可以在允许使用其他类型的许多地方使用协议,包括: 作为函数,方法或初始化程序中的参数类型或返回类型 作为常量,变量或属性的类型 作为数组,字典或其他容器中项目的类型 但是,以下内容会生成编译器错误: 协议“ SomeProtocol”只能用作通用约束,因为它具有“自我”或相关类型要求 您应该如何解决这个问题: protocol SomeProtocol: Equatable { func bla() } class SomeClass { var protocols = [SomeProtocol]() func addElement(element: SomeProtocol) { self.protocols.append(element) } func removeElement(element: SomeProtocol) { if let index = find(self.protocols, element) { self.protocols.removeAtIndex(index) } } }

8
Java:Instanceof和泛型
在查看通用数据结构中的值索引之前,我想看看它是否甚至this已被参数化为该类型的实例。 但是当我这样做时,Eclipse会抱怨: @Override public int indexOf(Object arg0) { if (!(arg0 instanceof E)) { return -1; } 这是错误消息: 无法针对类型参数E执行instanceof检查。请改用其擦除对象,因为泛型类型信息将在运行时删除 有什么更好的方法呢?

5
Mockito:存根返回带界通配符的类型的存根方法
考虑以下代码: public class DummyClass { public List&lt;? extends Number&gt; dummyMethod() { return new ArrayList&lt;Integer&gt;(); } } public class DummyClassTest { public void testMockitoWithGenerics() { DummyClass dummyClass = Mockito.mock(DummyClass.class); List&lt;? extends Number&gt; someList = new ArrayList&lt;Integer&gt;(); Mockito.when(dummyClass.dummyMethod()).thenReturn(someList); //Compiler complains about this } } 编译器抱怨该行试图对行为进行存根dummyMethod()。关于如何使用存根方法返回带界通配符的类型的任何指针?

5
测试对象在C#中是否为通用类型
我想执行一个对象是否为通用类型的测试。我已经尝试了以下方法,但均未成功: public bool Test() { List&lt;int&gt; list = new List&lt;int&gt;(); return list.GetType() == typeof(List&lt;&gt;); } 我做错了什么以及如何执行此测试?
134 c#  .net  generics  reflection  types 

3
将对象转换为通用类型以返回
有没有一种方法可以将对象强制转换为方法的返回值?我尝试过这种方式,但在“ instanceof”部分给出了编译时异常: public static &lt;T&gt; T convertInstanceOfObject(Object o) { if (o instanceof T) { return (T) o; } else { return null; } } 我也尝试过这个,但是它给出了运行时异常ClassCastException: public static &lt;T&gt; T convertInstanceOfObject(Object o) { try { T rv = (T)o; return rv; } catch(java.lang.ClassCastException e) { return null; } } 有没有一种简便的方法可以做到这一点: String …
134 java  generics  casting 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.