[英]How can my method, which is being called by another class, obtain a variable from that class without passing it as a parameter?
BayesianClassifier中的方法调用以下方法(Category方法):
public void updateProbabilities(Map<String, int> woordfrequenties) {
for (Map.Entry<String, int> woordfrequentie : woordfrequenties.entrySet()) {
String woord = woordfrequentie.getKey();
int frequentie = woordfrequentie.getValue();
int index = BayesianClassifier.getVocabulary().indexOf(woord);
}
}
现在,它指出无法从此处的静态上下文引用BayesianClassifier的非静态方法getVocabulary,据我了解,但是该方法如何才能从调用此方法的BayesianClassifier实例中获取字段“ vocabulary”的值? 是否一定有可能不将整个词汇作为参数传递,或者不给类Category的BayesianClassifier实例作为字段?
您可以使用以下代码来使用它:
public class Category {
private final BayesianClassifier bayesianClassifier;
public Category(BayesianClassifier bayesianClassifier) {
this.bayesianClassifier = bayesianClassifier;
}
public void updateProbabilities(Map<String, int> woordfrequenties) {
for (Map.Entry<String, int> woordfrequentie : woordfrequenties.entrySet()) {
String woord = woordfrequentie.getKey();
int frequentie = woordfrequentie.getValue();
int index = bayesianClassifier.getVocabulary().indexOf(woord);
}
}
要么
public class Category {
private BayesianClassifier bayesianClassifier;
public void setBayesianClassifier(BayesianClassifier bayesianClassifier) {
this.bayesianClassifier = bayesianClassifier;
}
public void updateProbabilities(Map<String, int> woordfrequenties, BayesianClassifier bayesianClassifier) {
for (Map.Entry<String, int> woordfrequentie : woordfrequenties.entrySet()) {
String woord = woordfrequentie.getKey();
int frequentie = woordfrequentie.getValue();
int index = bayesianClassifier.getVocabulary().indexOf(woord);
}
}
要么
public void updateProbabilities(Map<String, int> woordfrequenties, BayesianClassifier bayesianClassifier) {
for (Map.Entry<String, int> woordfrequentie : woordfrequenties.entrySet()) {
String woord = woordfrequentie.getKey();
int frequentie = woordfrequentie.getValue();
int index = bayesianClassifier.getVocabulary().indexOf(woord);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.