Tag: generics

转换List(of object)到List(of string)

有没有办法转换List(of Object)到List(of String)在c#或vb.net没有迭代所有的项目? (幕后的迭代很好 – 我只是想简洁的代码) 更新:最好的方法可能只是做一个新的select myList.Select(function(i) i.ToString()) 要么 myList.Select(i => i.ToString());

如何使一个genericstypes转换函数

可能重复: 有没有一个通用的Parse()函数,将string转换为任何types使用parsing? 我想做一个通用的function来做一些操作,比如: ConvertValue<T>(string value) 如果T是int那么函数会将该值转换为int并返回结果。 同样,如果T是boolean ,函数将把value转换为boolean并返回。 如何写这个?

Javagenerics益智游戏,扩展类和使用通配符

一直以来我一直在殴打我的头,认为也许有些新鲜的眼睛会看到这个问题; 谢谢你的时间。 import java.util.*; class Tbin<T> extends ArrayList<T> {} class TbinList<T> extends ArrayList<Tbin<T>> {} class Base {} class Derived extends Base {} public class Test { public static void main(String[] args) { ArrayList<Tbin<? extends Base>> test = new ArrayList<>(); test.add(new Tbin<Derived>()); TbinList<? extends Base> test2 = new TbinList<>(); test2.add(new Tbin<Derived>()); } } 使用Java 8.在我看来,像在test直接创build容器相当于test2的容器,但编译器说: Test.java:15: […]

什么是泛化generics? 他们如何解决types擦除问题,为什么不能添加没有重大变化?

我读过Neal Gafter的博客,关于这个问题我还不清楚。 为什么不能创buildCollections API的实现来保存给定Java的当前状态,JVM和现有集合API的types信息? 在未来的Java版本中,这些替代现有的实现是否能够保留向后兼容性? 举个例子: List<T> list = REIList<T>(T.Class); REIList是这样的: public REIList<T>() implements List { private Object o; private Class klass; public REIList(Object o) { this.o = o; klass = o.getClass(); } … the rest of the list implementation … 这些方法使用Object o和Class klass来获取types信息。 为什么要保留generics类信息需要更改语言,而不仅仅是JVM实现的变化? 我不了解什么?

Javagenerics:为什么这个输出成为可能?

我有这个class级: class MyClass<N extends Number> { N n = (N) (new Integer(8)); } 我想要得到这些输出: System.out.println(new MyClass<Long>().n); System.out.println(new MyClass<Long>().n.getClass()); 第一个System.out.println()语句的输出: 8 第二个System.out.println()语句的输出: java.lang.ClassCastException: java.lang.Integer (in module: java.base) cannot be cast to java.lang.Long (in module: java.base) 为什么我得到第一个输出? 还有没有演员? 为什么我会在第二个输出中得到exception? PS:我使用Java 9; 我尝试了与JShell,我得到了两个输出exception。 然后我用IntelliJ IDE试了一下,得到了第一个输出,但第二个是exception。

generics在C#中 – 我怎样才能创build一个带有参数的variablestypes的实例?

我有一个generics类,在那里我想用genericstypes实例化一个对象。 我想为该types的构造函数使用参数。 我的代码: public class GenericClass<T> where T : Some_Base_Class, new() { public static T SomeFunction(string s) { if (String.IsNullOrEmpty(s)) return new T(some_param); } } 我得到了一个错误 new T(some_param) 'T':创buildvariablestypes的实例时不能提供参数 任何想法我怎么能做到这一点?

检查entity framework中是否存在实体的通用方法?

类似于检查entity framework中是否存在对象的最佳方法? 我正在寻找一种通用的方式来检查DbSet的实体。 像这样的东西,这是行不通的: private DbContext DbContext { get; set; } private DbSet<T> DbSet { get; set; } public Boolean Exists(T entity) { return ((from item in this.DbSet where item == entity select item).Count() > 0); } where item == entity在LINQ to SQL中的工作行,但显然不是LINQ to Entities。 由于实体可能具有不同的密钥,我不能让它们全部从具有已知密钥的通用摘要inheritance来进行比较。 我可以做到这一点,但我担心捕获作为validation过程的exception的性能这不起作用,因为只要实体分离,无法获得OriginalValues属性: public Boolean Exists(T entity) { try { var […]

检查“T”是inheritance还是实现一个类/接口

有没有一种方法来testingT是否inheritance/实现一个类/接口? private void MyGenericClass<T> () { if(T … inherits or implements some class/interface }

jackson – 使用generics类反序列化

我有一个jsonstring,我应该将其序列化为以下类 Class Data <T> { int found; Class<T> hits } 我该怎么做? 这是通常的方法 mapper.readValue(jsonString, Data.class); 但是我怎么提到T代表什么呢?

运营商“??” 不能应用于'T'和'T'types的操作数

我有以下通用的方法,但VS给了我一个编译错误。 (运算符'??'不能用于'T'和'T'types的操作数) public static T Method<T>(T model) where T : new() { var m = model ?? new T(); } 有人知道为什么吗? 编辑:是否有可能的原因是T可以是一个结构在我的情况下,一个结构是一个非空types?