Wer*_*rCD 0 c# java list intellij-idea implements
我正在学习Java,而我正在尝试做一些我在C#中用Java做的事情.
目标是将类"MyItem"包装到"MyItems"列表中.这使得它更容易推理(MyItems比List<MyItem>... 更容易阅读/理解,或者说,我需要让它变得更复杂,比如IEnumerable<KeyValuePair<string,List<Dictionary<int,bool>>>>...然后要求MyKVPDictionaries代替List<IEnumberaable<KeyValuePair<...>>>>>).
只是环顾四周......似乎C#允许你保留东西的默认实现(看下面,.Add只是工作).
看看Java ...有没有办法在c#中实现列表?或者我是否必须手动手动实施列表的各个部分?(.add,.list,.contains等).
下面我有一个Class......和一个List<Class>C#的"基本"实现.
class MyItems implements List<MyItem>用Java 实现真的还有更多的工作吗?或者我错过了一些简化过程的东西?
(Java代码只是MyItems.java通过IntelliJ使用Resharper"Auto Implement missing members"存根的类文件).
C#版.NetFiddle:
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
var myItems = new MyItems();
myItems.Add(new MyItem("Hello"));
myItems.Add(new MyItem(" "));
myItems.Add(new MyItem("World"));
myItems.Add(new MyItem("!"));
foreach(var item in myItems)
Console.Write(item.Name);
}
}
public class MyItems : List<MyItem>
{
}
public class MyItem
{
public MyItem(string name)
{
Name = name;
}
public string Name { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
Java Version start/stub:
package items;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class MyItems implements List<MyItem> {
@Override
public int size() {
return 0;
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public boolean contains(Object o) {
return false;
}
@Override
public Iterator<MyItem> iterator() {
return null;
}
@Override
public Object[] toArray() {
return new Object[0];
}
@Override
public <T> T[] toArray(T[] a) {
return null;
}
@Override
public boolean add(MyItem generatePreSignedUrl) {
return false;
}
@Override
public boolean remove(Object o) {
return false;
}
@Override
public boolean containsAll(Collection<?> c) {
return false;
}
@Override
public boolean addAll(Collection<? extends MyItem> c) {
return false;
}
@Override
public boolean addAll(int index, Collection<? extends MyItem> c) {
return false;
}
@Override
public boolean removeAll(Collection<?> c) {
return false;
}
@Override
public boolean retainAll(Collection<?> c) {
return false;
}
@Override
public void clear() {
}
@Override
public MyItem get(int index) {
return null;
}
@Override
public MyItem set(int index, MyItem element) {
return null;
}
@Override
public void add(int index, MyItem element) {
}
@Override
public MyItem remove(int index) {
return null;
}
@Override
public int indexOf(Object o) {
return 0;
}
@Override
public int lastIndexOf(Object o) {
return 0;
}
@Override
public ListIterator<MyItem> listIterator() {
return null;
}
@Override
public ListIterator<MyItem> listIterator(int index) {
return null;
}
@Override
public List<MyItem> subList(int fromIndex, int toIndex) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
Java的List类型是一个接口,是C#的对应物IList.如果要实现它,则必须从头开始编写大多数方法.C#具体List类的对应部分是Java ArrayList:
public class MyItems extends ArrayList<MyItem> {
Run Code Online (Sandbox Code Playgroud)