Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java简化一个方法_Java - Fatal编程技术网

用java简化一个方法

用java简化一个方法,java,Java,我正在尝试创建一个简单的方法,如下所示: public void analyzeWithAnalytics(String data) { for (int i = 0; i < VALUE; i++) { if (data.equals("action1")) { // call a method on a value } if (data.equals("action2")) { /

我正在尝试创建一个简单的方法,如下所示:

public void analyzeWithAnalytics(String data) {

    for (int i = 0; i < VALUE; i++) {
        if (data.equals("action1")) {
            // call a method on a value
        }
        if (data.equals("action2")) {
            // call a different method on a value
        }
    }
public void analysiswithAnalytics(字符串数据){
for(int i=0;i
这只是一个小片段(我从代码中提取了很多),但本质上我希望能够调用一个特定的方法,而无需在for循环中测试要调用哪个方法的多行代码

有没有一种方法可以让我在一开始就声明一个变量来决定调用什么值,而不是执行这么多“if语句”测试

好的,我的类中有一个ArrayList:

private List<Value> values;
私有列表值;
值对象有两个字段:时间和速度

根据传递的字符串(时间或速度),我希望能够调用该字段的特定方法,而无需对传递的方法进行多个字符串比较

例如,我希望能够调用getSpeed()或getTime(),而无需每次调用时进行字符串比较


我只想测试一次。

您可以尝试类似的方法,它肯定会减少键入量:

public void analyzeWithAnalytics(String data) {

    for (int i = 0; i < VALUE; i++) {
        switch(data) {
            case "action1": doSomething(); break;
            case "action2": doSomething(); break;
        }
    }
}
public void analysiswithAnalytics(字符串数据){
for(int i=0;i
您可以尝试类似的方法,它肯定会减少键入的数量:

public void analyzeWithAnalytics(String data) {

    for (int i = 0; i < VALUE; i++) {
        switch(data) {
            case "action1": doSomething(); break;
            case "action2": doSomething(); break;
        }
    }
}
public void analysiswithAnalytics(字符串数据){
for(int i=0;i
您可以尝试类似的方法,它肯定会减少键入的数量:

public void analyzeWithAnalytics(String data) {

    for (int i = 0; i < VALUE; i++) {
        switch(data) {
            case "action1": doSomething(); break;
            case "action2": doSomething(); break;
        }
    }
}
public void analysiswithAnalytics(字符串数据){
for(int i=0;i
您可以尝试类似的方法,它肯定会减少键入的数量:

public void analyzeWithAnalytics(String data) {

    for (int i = 0; i < VALUE; i++) {
        switch(data) {
            case "action1": doSomething(); break;
            case "action2": doSomething(); break;
        }
    }
}
public void analysiswithAnalytics(字符串数据){
for(int i=0;i
您可以拥有一个
映射
,该映射将名称(action1、action2,…)映射到具有公共父级和一个方法的类。并按如下方式进行调用:

map.getClass("action1").executeMethod();

Map<String, MethodClass> theMap = new Map<>();

interface MethodClass {
    executeMethod();
}

您可以有一个
映射
,它将名称(action1、action2,…)映射到具有公共父级和一个方法的类。并按如下方式进行调用:

map.getClass("action1").executeMethod();

Map<String, MethodClass> theMap = new Map<>();

interface MethodClass {
    executeMethod();
}

您可以有一个
映射
,它将名称(action1、action2,…)映射到具有公共父级和一个方法的类。并按如下方式进行调用:

map.getClass("action1").executeMethod();

Map<String, MethodClass> theMap = new Map<>();

interface MethodClass {
    executeMethod();
}

您可以有一个
映射
,它将名称(action1、action2,…)映射到具有公共父级和一个方法的类。并按如下方式进行调用:

map.getClass("action1").executeMethod();

Map<String, MethodClass> theMap = new Map<>();

interface MethodClass {
    executeMethod();
}

从您的问题来看,您的目标并不明确。是否要:

  • 避免输入大量案例
  • 获得代码可读性
  • 提高绩效
  • 在追求性能的情况下,不要过早地进行优化!也就是说,不要认为这对性能很重要,而不首先检查它(最好是通过分析)。相反,要关注可读性,也许还有惰性

    无论如何,只要在循环外部检查
    数据
    ,就可以避免许多内部测试。但是,您必须多次复制/粘贴循环代码。这并不会使方法更美观


    我还建议使用
    case
    而不是
    if
    。它大大提高了可读性,也给了您一点性能。特别是因为您的原始代码没有使用
    if-elseif-…
    ,这意味着即使在第一个条件为真之后,也会检查所有条件。

    从您的问题中,您的目标不是很清楚打开。是否要:

  • 避免输入大量案例
  • 获得代码可读性
  • 提高绩效
  • 在追求性能的情况下,不要过早地进行优化!也就是说,不要认为这对性能很重要,而不首先检查它(最好是通过分析)。相反,要关注可读性,也许还有惰性

    无论如何,只要在循环外部检查
    数据
    ,就可以避免许多内部测试。但是,您必须多次复制/粘贴循环代码。这并不会使方法更美观


    我还建议使用
    case
    而不是
    if
    。它大大提高了可读性,也给了您一点性能。特别是因为您的原始代码没有使用
    if-elseif-…
    ,这意味着即使在第一个条件为真之后,也会检查所有条件。

    从您的问题中,您的目标不是很清楚打开。是否要:

  • 避免输入大量案例
  • 获得代码可读性
  • 提高绩效
  • 在追求性能的情况下,不要过早地进行优化!也就是说,不要认为这对性能很重要,而不首先检查它(最好是通过分析)。相反,要关注可读性,也许还有惰性

    无论如何,只要在循环外部检查
    数据
    ,就可以避免许多内部测试。但是,您必须多次复制/粘贴循环代码。这并不会使方法更美观

    我还建议使用
    case
    而不是
    if
    。它大大提高了可读性,也给了您一点性能。特别是因为您的原始代码没有使用
    if-elseif-…
    ,这意味着即使在第一个条件为真之后,也会检查所有条件。

    您的目标是: