的實例,我有這樣的代碼:如何創建一個參數化接口
ObjProcessor processor = getProcessor();
MyClass myObj = getObjToProcess();// MyClass extends PersistentObj
和類:
public class ObjProcessor {
public <OP extends PersistentObj) void process(Class<OP> objClazz, OP object, Modifier<OP> modifier) {
...
}
}
public interface Modifier<T> {
void modify(T obj);
}
我卡住了。如何創建修改器的實例能夠調用:
processor.process(myObj.getClass(), myObj, ???);
羅恩C'S的評論之後,我創造了這個修改器:
Modifier<MyClass> mod = new Modifier<MyClass>() {
@Override
public void modify(MyClass obj) {
// empty
}
};
proc.process(myObj.getClass(), myObj, mod); // compilation error!
的Eclipse給這個錯誤:
The method process(Class<OP>, OP, Modifier<OP>) in the type ObjProcessor is not applicable for the arguments (Class< capture#1-of ? extends MyClass>, MyClass, Modifier<MyClass>)
您需要編寫一個實現'Modifier'的類。它可能是匿名的。 –
您使用的是Java 8嗎? –