Tag: generics

这是有效的Java?

这是有效的Java? import java.util.Arrays; import java.util.List; class TestWillThatCompile { public static String f(List<String> list) { System.out.println("strings"); return null; } public static Integer f(List<Integer> list) { System.out.println("numbers"); return null; } public static void main(String[] args) { f(Arrays.asList("asdf")); f(Arrays.asList(123)); } } Eclipse 3.5说是的 Eclipse 3.6说不 Intellij 9说是的 Sun的javac 1.6.0_20说是的 GCJ 4.4.3说是的 GWT编译器说是的 人群在我以前的Stackoverflow问题说不 我的Java理论理解说不! 了解JLS对此的看法是很有意思的。

为什么C#编译器允许在IEnumerable <T>和TAlmostAnything之间进行显式转换?

下面的代码给你一个编译器错误,如你所期望的那样: List<Banana> aBunchOfBananas = new List<Banana>(); Banana justOneBanana = (Banana)aBunchOfBananas; 但是,使用IEnumerable<Banana> ,您只会得到一个运行时错误。 IEnumerable<Banana> aBunchOfBananas = new List<Banana>(); Banana justOneBanana = (Banana)aBunchOfBananas; 为什么C#编译器允许这样做?

将string转换为List <string>在一行中?

我有一个string: var names = "Brian,Joe,Chris"; 有没有办法将其转换为List<string> ,在一行中分隔?

在genericstypes中使用'using alias = class'?

所以有时我只想从命名空间中包含一个类而不是整个命名空间,就像这里的例子,我使用using语句为该类创build一个别名: using System; using System.Text; using Array = System.Collections.ArrayList; 我经常用generics来做这件事,所以我不必重复这些论点: using LookupDictionary = System.Collections.Generic.Dictionary<string, int>; 现在我想用一个generics来完成同样的工作,同时把它作为一个generics来保存: using List<T> = System.Collections.Generic.List<T>; 但是,这不能编译,所以有什么办法来实现创build这个别名,而types为通用?

将数组投射到IEnumerable <T>

假设你有一个基本的Employee类: class Employee { public string Name; public int Years; public string Department; } 然后(在一个单独的类)我有下面的代码片段(我想我明白除了最后一个): 我相信下面的代码片段可以工作,因为数组initiliser创build一个Employee对象的数组,这个对象的types和被分配给的劳动力variables是一样的。 Employee[] workforceOne = new Employee[] { new Employee() { Name = "David", Years = 0, Department = "software" }, new Employee() { Name = "Dexter", Years = 3, Department = "software" }, new Employee() { Name = "Paul", Years […]

制作一个通用属性

我有一个类存储序列化的值和types。 我想要一个属性/方法返回已经铸造的值: public String Value { get; set; } public Type TheType { get; set; } public typeof(TheType) CastedValue { get { return Convert.ChangeType(Value, typeof(_Type)); } 这在C#中可能吗?

为什么C#编译器在从不同的基类派生时抱怨“types可能会统一”?

我目前的非编译代码与此类似: public abstract class A { } public class B { } public class C : A { } public interface IFoo<T> { void Handle(T item); } public class MyFoo<TA> : IFoo<TA>, IFoo<B> where TA : A { public void Handle(TA a) { } public void Handle(B b) { } } C#编译器拒绝编译这个,引用下面的规则/错误: 'MyProject.MyFoo <TA>'不能实现'MyProject.IFoo <TA>'和'MyProject.IFoo […]

Java抽象类与generics实现接口

我正在试图定义一个实现Comparable的抽象类。 当我用下面的定义来定义类时: public abstract class MyClass implements Comparable <MyClass> 子类必须实现compareTo(MyClass object) 。 相反,我希望每个子类都实现compareTo(SubClass object) ,接受它自己types的对象。 当我尝试用类似下面的方法定义抽象类时: public abstract class MyClass implements Comparable <? extends MyClass> 它抱怨说“超types可能不指定任何通配符”。 有解决scheme吗?

Java未选中:为varargs参数未经检查的通用数组创build

我已经设置Netbeans在我的Java代码中显示未经检查的警告,但我无法理解以下几行的错误: private List<String> cocNumbers; private List<String> vatNumbers; private List<String> ibans; private List<String> banks; … List<List<String>> combinations = Utils.createCombinations(cocNumbers, vatNumbers, ibans); 得到: [unchecked] unchecked generic array creation for varargs parameter of type List<String>[] 方法来源: /** * Returns a list of all possible combinations of the entered array of lists. * * Example: [["A", "B"], ["0", "1", […]

将字典值转换为数组

将字典值列表转换为数组的最有效方法是什么? 例如,如果我有一个String ,其中Key是String , Value是Foo ,我想获得Foo[] 我正在使用VS 2005,C#2.0