gpt4 book ai didi

java - 我的方法(被另一个类调用)如何从该类获取变量而不将其作为参数传递?

转载 作者:太空宇宙 更新时间:2023-11-04 13:08:54 25 4
gpt4 key购买 nike

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”的值呢?无需将整个词汇表作为参数传递,或者将 BayesianClassifier 实例作为字段提供给类 Category,这肯定是可能的?

最佳答案

正如评论中所述,可以通过反射来完成。如果您无法将词汇作为参数传递,那么请使用此处的答案:Previous Answer to Same Question

如果您不想使用反射,您有两个选择:

选项 1:

只需在调用updateProbativity时传入Vocabulary对象即可。 Java 是按值传递的,但这并不意味着整个 Vocabulary 对象都会被复制和传递。这是解释here 。本质上,将传递指向对象的指针的值,这样做只占用一个“指针”的额外空间。

选项 2:

创建 Category 对象时,添加 BayesianClassifier 作为字段。

关于java - 我的方法(被另一个类调用)如何从该类获取变量而不将其作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34166318/

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