类似于Java中的C#.NET通用列表 - c#

Java中的C#.net通用列表将如何?

像这样的东西:

public class ClientList : List<Client> { }

Nikil的答案很完美,我只想添加到想要从列表中创建课程的任何人:

public class ClientList extends ArrayList<Client>

参考方案

可以泛化Java的List接口(java.util.List)。换句话说,可以为List实例指定一种类型,因此只能插入该类型的实例并从该List中读取。这是一个例子:

List<String> list = new ArrayList<String>();

现在,此列表仅针对String实例,这意味着只能将String实例放入此列表。如果您尝试在此列表中添加其他内容,编译器将抱怨。

泛型类型检查仅在编译时存在。在运行时,可以对代码进行调整,以使字符串列表具有插入了字符串的其他对象。但是,这是一个坏主意。

访问通用列表

您可以像这样获取并插入通用列表的元素:

List<String> list = new ArrayList<String>();

String string1 = "a string";
list.add(string1);

String string2 = list.get(0);

请注意,通常不需要强制转换从List.get()方法调用获得的对象。编译器知道此List只能包含String实例,因此不需要强制转换。

迭代通用列表

您可以使用迭代器来迭代通用列表,如下所示:

List<String> list = new ArrayList<String>();

Iterator<String> iterator = list.iterator();

while(iterator.hasNext()){
    String aString = iterator.next();
}

注意,没有必要强制转换从iterator.next()下一次调用返回的对象。因为List是泛型的(具有类型),所以编译器知道它包含String实例。因此,即使它来自Iterator,也不必强制转换从它获得的对象。

您还可以使用新的for循环,如下所示:

List<String> list = new ArrayList<String>();

for(String aString : list) {
    System.out.println(aString);
}

注意,如何在for循环的括号内声明String变量。对于每次迭代(列表中的每个元素),此变量都包含当前元素(当前字符串)。

为什么要使用Func <string>而不是string? - c#

为什么要使用Func<string>而不是string?我的问题特别是关于this回购。有问题的行是22: private static Func<string> getToken = () => Environment.GetEnvironmentVariable("GitHubToken", Enviro…

Java中的“ <<”运算符 - java

最喜欢的语句来自Java的Character类:(1 << Character.PARAGRAPH_SEPARATOR)) >> type PARAGRAPH_SEPARATOR是字节,type是整数。这句话中的操作员,他们做什么?如何以及在哪里可以使用这些运算符?这是oracles java.lang.Character文档。该类中…

C#等效于Java List <?扩展类> - c#

我有泛型类的基本结构public class Parent<T> where T : Parent<T> { Action<T> Notify; } public class Child : Parent<Child> { } 我想要一个列表,以便可以将Child对象放在此处List<Parent>…

当我运行python代码时,它说“ <<目前是意外情况” - python

基本上,这是我们合作者的python代码,用于生成网格,该网格是在Linux环境下开发的。我使用Cygwin在Windows上运行此代码。麻烦部分如下。 BiV_temp.geo也是一个python脚本。因此,命令是用预定义的数字和文件名替换脚本BiV_temp.geo中的字符串。os.system('cp BiV_fiber.geo BiV_te…

将对象转换为List <object> - c#

我看过类似的问题,但没有什么合适的。我有一个碰巧包含列表的对象。我想把它变成我可以列举的东西。例如:object listObject; // contains a List<Something> List<object> list; list = listObject as List<object>; // list c…