用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-…
,这意味着即使在第一个条件为真之后,也会检查所有条件。您的目标是: