Bunu yapmak imkansız gibi görünüyor, ama bu problemin etrafında herkesin zekice bir yolu var mı? S
bir bazı bilinmeyen tür arayüzü ve SomeClass
olması gerekiyorduBir arayüz olması için jenerik bir tür zorlar mı?
public class SomeClassIterableWrapper<S, T extends SomeClass & S> implements Iterable<S>
iki yönlü bir JDBC resultset işlev açısından benzer bir satır indeksi, bir 2D dizidir. SomeClass
'un alt sınıfları, her sütun için özel alıcılara ve ayarlayıcılara sahiptir. Bu yapıdan bir liste yapar gibi yineleyebilmek istiyorum. SomeClass
ve Bean arasında, alıcılara ve ayarlayıcılara erişim sağlamak için ortak bir arayüz uygulamak istiyorum. Bu arayüzün olması gerektiği gibi. Ancak verdiğim beyanname çalışmıyor. Bu etrafında çalışmak için bir yolu var mı?
public class SomeClassIterableWrapper<S, T extends SomeClass & S> implements Iterable<S>{
T object;
public SomeClassWrapper(T object){
this.object = object;
}
@Override
public Iterator<S> iterator() {
object.setIndex(-1);
return new SomeClassIterator<S>();
}
private class SomeClassIterator<S> implements Iterator<S> {
@Override
public boolean hasNext() {
return object.index() < object.rowSize() - 1;
}
@Override
public S next() {
object.next();
//safe because only interface methods allowed, can't further manipulate index
return object;
}
@Override
public void remove() {
object.deleteRow();
}
}
Açıklamada, S, –
@LudwigMagnusson arabiriminde olduğu gibi, 'X' bir sınıf veya arabirim olup olmadığına bakılmaksızın, yalnızca X 'generic tip parametre tanımında kullanılabilir. –