我有一个抽象类:传递抽象/通用对象方法
public abstract class AdvancedModel<T, K>
具有两个subclasss:
public class TrackModel extends AdvancedModel<Track, Toptracks>
和
public class ArtistModel extends AdvancedModel<Artist, Topartists>
在称为评价一个单独的类,我想有一个方法可以接受这些对象中的任何一个,并且可以使用它。有没有办法做到这一点使用泛型类型,或者我必须有两次使用两个不同的类作为参数相同的方法?
编辑
我试图
private <T, K> float runModel(AdvancedModel<T, K> testEngine)
这似乎当我宣布物体像前面的工作:与后来的其他方法
AdvancedModel<Track, Toptracks> name = new TrackModel(10, 17);
float result = runModel(name);
但是,这是造成问题。例如,我有另一种方法,我想要从K调用getArtist()或getTrack(),具体取决于K是Toptracks还是Topartists?
“我想有一个发生在这两种对象的方法和做的东西与它” - 是的,你可以,但除非你指定你想做什么样的“东西” - 我们无法真正帮助你... – alfasin
你可以使用基类 –
这取决于你的方法在做什么。如果它能够在不知道“T”或“K”的情况下在基类上操作,它可以接受“AdvancedModel , ?>”。 – shmosel