【问题标题】:Methods inside Methods? [closed]方法中的方法? [关闭]
【发布时间】:2021-01-18 03:58:41
【问题描述】:

我想要以下:

Permissions.getPermissions().add("STRING");

我需要拥有类权限、方法 getPermissions() 以及在该方法中另一个称为 add() 的方法,对吗?但这是不可能的,因为您不能在方法中包含方法:/ 有没有办法解决这个问题?

【问题讨论】:

  • 不是这个意思。这意味着 add 被调用 getPermissions 返回的任何内容(可能是 Set 或 List)。

标签: java methods


【解决方案1】:

这是绝对可能的,它不是方法中的方法。您的示例中发生的情况是,您的第一个方法正在返回一个具有自己方法的对象。例如想象一下:你有一个 Zoo 类。该动物园类有一个动物园管理员,因此有一个获取动物园管理员的方法。该方法将返回 Person 类的一个实例。该类有一个方法来获取这个人的名字。结果你可以写:

zoo.getZookeeper().getName()

【讨论】:

    【解决方案2】:

    不需要在另一个方法中使用方法。您的完整示例是:

    import java.util.ArrayList;
    import java.util.List;
    
    public class MyClass {
               
           public List<String> permissions;
           
           public List<String> getPermissions(){
               return permissions;
           }
           
           MyClass(){
               permissions = new ArrayList<String>();
           }
       }
    

    然后:

    MyClass obj = new MyClass();
    obj.getPermissions().add("STRING");
               
    System.out.println(obj.permissions.toString());
    

    这将导致:

    [STRING]
    

    【讨论】:

      【解决方案3】:

      这是可能的,它不被称为方法内部的方法,而是一个引用并在该引用上执行操作。

      package com.example;
      
      import java.util.ArrayList;
      import java.util.List;
      
      
      class Permissions {
          final static private List<String> permissions = new ArrayList<>();
      
          public static List<String> getPermissions() {
              return permissions;
          }
      }
      
      public class SampleMain {
          public static void main(String[] args) {
              Permissions.getPermissions().add("STRING");
              Permissions
                      .getPermissions()
                      .forEach(System.out::println);
          }
      }
      
      

      【讨论】:

        猜你喜欢
        • 2017-10-19
        • 2014-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-15
        • 2012-07-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多