使用返回类型调用方法的 Java 最佳实践

标签 java methods

如何避免调用同一个方法三次,这种情况下的最佳做法是什么?或者说这是正确的方法吗?

我首先检查列表是否为空,然后再次检查以确保列表不为空,因为不想打印空列表。

public class RegExpTest_1 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("item1");
        list.add("#item2");
        list.add("item3");
        list.add("&item4");
        list.add("item5");

        ArrayList<String> list1 = new ArrayList<String>();
        list1.add("item1");
        list1.add("item2");
        list1.add("item3");
        list1.add("item4");
        list1.add("item5");

        if (StringUtils.isNotEmpty(finditem(list)) || StringUtils.isNotEmpty(finditem(list1))){  // calling method
            if (StringUtils.isNotEmpty(finditem(list))) {         //calling same method
                System.out.println("List :\n" + finditem(list));  //calling same method
            }
            if (StringUtils.isNotEmpty(finditem(list1))) {
                System.out.println("List :\n" + finditem(list1));
            }
        }
    } //main

    public static String finditem(ArrayList<String> alist){
        StringBuilder sb = new StringBuilder();
        String re1=".*?";   // Non-greedy match on filler
        String re2="(^#|^&)";   // Word 1
        Pattern p = Pattern.compile(re1+re2,Pattern.CASE_INSENSITIVE | Pattern.DOTALL);

        for (String str:alist) {
            Matcher m = p.matcher(str);
            if (m.find()) {
              //  System.out.println("found" + m.group(1));
                sb.append(str);
                sb.append("\n");
            } else {
               // System.out.print("not found");
            }
        }

        return sb.toString();
    }
}

最佳答案

外部的 if 语句是多余的。只需使用两个内部 if 语句即可。

例如

    if (StringUtils.isNotEmpty(finditem(list))) {         //calling same method
        System.out.println("List :\n" + finditem(list));  //calling same method

    }
    if (StringUtils.isNotEmpty(finditem(list1))) {
        System.out.println("List :\n" + finditem(list1));
    }

关于使用返回类型调用方法的 Java 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37500552/

相关文章:

java - 如何找到 Hibernate + Spring-JPA 的兼容版本对? (无法打开 JPA EntityManager 进行交易)

java - 比较 Imageview 和 R.drawable

PHP全局变量

java - 抛出异常还是处理异常?

java - 无法从双 HashMap 中检索

Java:正确引用 ETag 的例程?

java - Google Appengine - id 为 "com.google.appengine.api.datastore.Key:Product("Potatoe 的对象")"由不同的对象管理器管理

go - 名称为空的方法的目的是什么?

java - Java 中的单引号是怎么回事?

c# - 您如何在层次结构的某个级别而不是最低级别调用类的方法?