【问题标题】:How to get resoult of function from another class that is called from yet another class with values如何从另一个具有值的类调用的另一个类中获取函数的结果
【发布时间】:2019-09-08 08:35:06
【问题描述】:

这是基本的,但我真的是 Java 新手... 在Controller.class 中,我得到了开始我的“boss 方法”的值(中心、数据集、k)

 Main.kmeans(centers, dataset, k);

此方法调用Main.class 中的许多链接方法。我需要的方法之一是 pobarvajClusterje:

public static Map<String, TockaXY> pobarvajClusterje(List<TockaXY> kmeans, int k) {

    List<String> barve = new ArrayList<>();
    barve.add("Modra");
    barve.add("Rumena");
    barve.add("Zelena");
    barve.add("Rdeca");
    barve.add("Vijola");
    barve.add("Crna");
    barve.add("Oranzna");
    barve.add("Roza");
    barve.add("Rjava");
    barve.add("Siva");

    Map<String, TockaXY> barvniCluster = new IdentityHashMap<>(k);

    for (int d = 0; d < k; d++) {
        barvniCluster.put(barve.get(d), kmeans.get(d));
    }
    return barvniCluster;
}

这个方法确实返回一个

Map<String, TockaXY> barvniCluster = new IdentityHashMap<>(k);

那么如何在第三个WebView.class 中获取此 Map 以对其进行迭代? 因为我必须使用来自Control.class 的参数在Main.class 中调用来自WebView.class 的函数。 还是我以错误的方式声明函数?

【问题讨论】:

  • 感谢链接,它清除了一点,但我仍然不明白如何实际实现......我必须使用来自 Control 的参数从 Main.class 中的 WebView.class 调用函数.class

标签: java dictionary pass-by-reference


【解决方案1】:

为了从Main.class 调用公共静态方法,您需要在Control.java 中编写如下内容。

public static void main(String[] args) {
    Map<String, TockaXY> output = Main.pobarvajClusterje(argument1, argument2);
}

根据您的包的安排,您可能必须在当前类中导入 Main 才能调用此方法,正如我所提到的。

main 方法只是一个例子,你当然可以从Control 类中的任何方法内部调用。

【讨论】:

  • 喜欢这个 Eclipse 很高兴: Map output = Main.pobarvajClusterje(Main.kmeans(centers, dataset, k), k);像这样我在方法中得到了值,但现在我必须在 WebView 类中得到它来迭代结果。因为我无法通过 SampleController.output 得到它;
  • 之所以如此,是因为output 不是您的SampleController 中的静态变量。您可以执行public static Map&lt;String, TockaXY&gt; output 之类的操作,并使用此output 变量来分配和重用方法输出中的值。但是,为了更清楚地了解 Java 语言结构,我强烈建议您在深入了解复杂的 TODO 之前阅读一本好书。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 2017-08-10
  • 2023-04-04
  • 1970-01-01
  • 2023-04-08
  • 2022-01-05
  • 1970-01-01
相关资源
最近更新 更多