import java.util.ArrayList;
import java.util.List;
public class QueryParser {
QueryParameter queryParameter = new QueryParameter();
public static int flag = 0;
public QueryParameter parseQuery(String queryString) {
queryParameter.setGroupByFields(getGroupByFields(queryString));
queryParameter.setAggregateFunctions(getAggregateFunctions(queryString));
return queryParameter;
}
private List<AggregateFunction> getAggregateFunctions(String queryString) {
List<AggregateFunction> aggregateFunctionList = null;
AggregateFunction aggregateFunction;
if (queryString.contains("count") || queryString.contains("sum") || queryString.contains("min")
|| queryString.contains("max") || queryString.contains("avg")) {
flag = flag + 1;
}
return aggregateFunctionList;
}
private List<String> getGroupByFields(String queryString) {
List<String> groupByFieldList = null;
if (queryString.contains("group by")) {
flag = flag+2;
return groupByFieldList;
}
}
这是我的代码,现在我从另一个类使用 int i = queryParser.flag
, 访问标志,但它始终返回0。如何声明标志,这样它会保存从价值观内部方法,也可以从其他类访问。/*如果有人需要更多的细节,请问我会添加更多的细节,我应该写什么,我的主要疑问是只知道我怎么能在另一个班级使用我的国旗,感谢您的耐心*/标志总是返回0到另一个类
欢迎来到SO。 TL; DR;请参阅[如何提问](https://stackoverflow.com/help/how-to-ask):“假装你正在和一位忙碌的同事谈话,并且必须用一句话来概括你的整个问题”。发布最短的代码来展示问题。请参阅:[mcve]。制作mcve也将帮助您调试和隔离问题。你可能会发现问题不在于'flag'的声明中,而是改变其值的逻辑。 – c0der
嗨,你能指出我可以如何改变标志值(仅供参考:我现在减少了代码) – Krishna
减少代码是好的,但它不会使它[mcve] – c0der