我想要一個處理實現特定接口的任何類型的列表的方法。在這種情況下,Java是否'擴展'也意味着'implements'?
public interface Encryptable {
public void encrypt() throws Exception ;
}
class DomainClass implements Encryptable {
String name ;
public void encrypt() throws Exception {
try {
name = CryptoUtils.encrypt(name);
}
}
}
此實用方法可以對實現Encryptable的任何域類的List進行加密。
public static void encryptList (Collection<? extends Encryptable> listToEncrypt ) {
for (Encryptable objToEncrypt: listToEncrypt) {
try {
objToEncrypt.encrypt() ;
} catch (Exception e) {
}
}
}
我寫了一個測試應用程序,這似乎工作。我關心的是Java關鍵字'extends'。我的課程不擴展他們實施它的可加密。我所寫的是否真的有效,或者我是做錯事情的副作用的犧牲品,但卻得到正確的答案。
你正在做的事情是正確的。 Oracle Java教程中的[Lesson:Interfaces and Inheritance](http://docs.oracle.com/javase/tutorial/java/IandI/index.html)介紹了這一點。 –
http://stackoverflow.com/questions/10971888/implements-vs-extends-in-generics-in-java – StormeHawke