gpt4 book ai didi

java - 扩展 ParseObject 并拥有通用查询工厂的正确方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:39 26 4
gpt4 key购买 nike

我需要一种方法来根据用户的选择查询不同的解析类。我按如下方式解决了这个问题。请告知如何解决我遇到的问题或建议替代/更好的方法。

我有课A, B, C, ...对应于 Parse 类。它们非常相似。所以,我创建了抽象类 Q :

public abstract class Q extends ParseObject {
// some shared methods

public abstract ParseQuery<? extends Q> getQuery();
}

每个A, B, C, ...定义为:

@ParseClassName("A")
public class A extends Q {
private static final A INSTANCE = new A();

@Override
public ParseQuery<A> getQuery() {
return ParseQuery.getQuery(A.class);
}

public static A getInstance(){
return INSTANCE;
}
}

我的回收 View 有以下回收适配器:

public class QAdapter extends ParseRecyclerQueryAdapter<Q,QAdapter.MyViewHolder>{ ... }

我遇到的错误发生在我的 Activity 中的以下行:

mRecyclerAdapter = new QAdapter(this, factory, true);

错误信息是:

Error:(58, 70) error: incompatible types: QueryFactory<CAP#1> cannot be converted to QueryFactory<Q>
where CAP#1 is a fresh type-variable:
CAP#1 extends Q from capture of ? extends Q

我试图将适配器类的定义定义为通用的 public class QAdapter<T extends Q> extends ParseRecyclerQueryAdapter<T, QAdapter.MyViewHolder> {... } ,但这引入了另一个错误,指出 QAdapter 没有实现 onBindViewHolder即使已实现。

最佳答案

这可能行不通,但我会尝试更换

public class QAdapter extends ParseRecyclerQueryAdapter<Q,QAdapter.MyViewHolder>{ ... }

public class QAdapter extends ParseRecyclerQueryAdapter<? extends Q,QAdapter.MyViewHolder>{ ... }

关于java - 扩展 ParseObject 并拥有通用查询工厂的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33931375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com