Я играю на GAE (я использую Objectify) и хотел сделать что-то вроде универсального метода, но не уверен, как это сделать (и, насколько я понимаю, генерики не будут решениемдля меня).Это мои настройки:
public abstract class Cloud{
Key<Cloud> parent;
public Cloud(Key<Cloud> parent,...){
....
}
}
public class TagCloud extends Cloud{
public TagCloud(Key<Cloud> parent,...){
super(parent,...);
....
}
}
Моя цель - сделать что-то вроде этого;
Key<TagCloud> parentKey=put(new TagCloud(null,...));
Key<LadyGaggaCloud> childKey=put(new LadyGaggaCloud(parentKey,...));
Очевидно, это не сработает, так как Cloud нужен общий ключ Cloud, а неTagCloud.Я хочу иметь возможность передавать все ключи типов облаков, которые расширяют облако (ключ , ключ , ключ и т. Д.).Я думал о создании общего класса Cloud с использованием шаблонов, чтобы я мог сделать что-то вроде Key< T extends Cloud> parent
и передать ему расширяющееся облако (FooCloud), но это не удовлетворило бы, потому что TagCloud может иметь любой тип облака в качестве родительскогоа не один единственный тип.
Кто-нибудь знает, как этого добиться?Или то, что я пытаюсь сделать в отношении GAE и NoSQL, - глупая идея, и мне следует обращаться с различными типами облаков в поле данных?Спасибо за вашу помощь!