我正在用Java学习泛型。首先,我们创建了一个Integer数组列表,并在列表中添加了一个值。
pdf
方法重复项只能由扩展了const data = {
result: [
{
name: "2015.494782.1981AugustSapthagirikannada.gif",
source: "derivative",
format: "Animated GIF",
original: "2015.494782.1981AugustSapthagirikannada_jp2.zip",
mtime: "1490522158",
size: "270516",
md5: "5f0758aaef567d76916620f2ed568cb9",
crc32: "f70dda86",
sha1: "99c63d12e5d8c115a66d51715d998cd2534254a1"
},
{
name: "2015.494782.1981AugustSapthagirikannada.pdf",
source: "original",
mtime: "1484723772",
size: "7488708",
md5: "eecd0d8ae44a69fa0b398f8e00dda573",
crc32: "f06bf0f0",
sha1: "f00af63426b93a9587b0b59b20cc4beb79482243",
format: "Image Container PDF"
}
]
};
// Method 1
const item = data.result.find(({ name }) => name.endsWith(".pdf"));
const file_name = item ? item.name : "not found";
// Method 2
let file_name2 = "not found";
data.result.forEach(obj => {
if (obj.name.split(".").pop() === "pdf") {
file_name2 = obj.name;
}
});
console.log(file_name);
console.log(file_name2);
的那些对象使用。但是,由于import java.util.ArrayList;
import java.util.List;
public class GenericsRunner {
public static void main(String[] args) {
ArrayList<Integer> numbers=new ArrayList<>();
numbers.add(1);
}
static <X extends List> void duplicate(X list) {
list.addAll(list);
}
}
是接口
List
List
正在实现public interface List<E> extends Collection<E>
ArrayList
我现在被困住了。那些继承自超类的属性的类使用扩展。
但是List
是如何扩展public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable,
java.io.Serializable
的呢?实际上,Arraylist
正在实现List
。这个扩展关键字如何为此工具机制工作?我感到困惑的是,它使用的是ArrayList
和List
是相同的吗?
答案 0 :(得分:1)
原因是<X extends T>
意味着X
是从T
继承的。接口没有特殊的语法,例如在类声明中描述继承时。
ArrayList
实现了接口List
,这意味着它是从List
继承的,因此适用于通用类型<X extends List>
。
在Java中,任何类都只能扩展一个类。默认情况下,当您不指定其他父类时,它是Object
。而且类和接口可以实现任意数量的接口。
希望这会有所帮助。