【问题标题】:function inside swith case - java programming开关盒内的功能 - java编程
【发布时间】:2014-01-25 10:27:36
【问题描述】:

我正在学习 java,我遇到了一个函数 calc(改变了几个对象并删除了几行),但是我无法理解下面的代码...... 我知道这遵循构建器模式

问题:

  1. 我以前从未见过这种情况,由于搜索不佳,我没有从谷歌搜索中得到太多帮助...我们可以返回新对象和下面的函数吗... 如何简单地解释这一点
  2. case 1 没有编码并且默认低于它;这是否意味着 1 大部分时间都是默认值

这是我的代码:

public calc(int value)
    {
        switch (value) {
        case 0:
            return new validator<objValidator>() {
                @Override
                public Boolean evaluate() {
                    //some business logic to return true/false
                    return true;
                }
            };

        case 1:
        default:
            return new validator<objValidator>() {
                @Override
                public Boolean evaluate() {
                    //some business logic to return true/false
                    return true;
                }
            };
        }
    }

【问题讨论】:

  • 错误不是生成器...工厂...
  • 另外,你忘记了方法的返回类型......
  • 那不是有效的代码。这要么是 calc 类的构造函数(其中不应该有带值的返回语句),要么是方法(在这种情况下它没有返回类型)。缺少validator 的声明无济于事,您没有遵循Java 命名约定这一事实也无济于事。我也没有看到任何迹象表明这与构建器模式有关。
  • 返回类型是验证器...我的错。
  • 乔恩,我只发布了具有匿名内部类的方法。我已经定制了代码,并认为这有足够的细节。以后我会改正的。

标签: java design-patterns switch-statement builder


【解决方案1】:

您在此处看到的称为匿名内部类。搜索该词应该会带来一些有用的结果。

基本上validator&lt;objValidator&gt; 是一个接口,您可以就地创建它的实现。

【讨论】:

  • 谢谢亨利,我可以用名字来称呼它。匿名内部类
【解决方案2】:

这些被称为Anonymous 类。
this链接。

【讨论】:

    【解决方案3】:

    问题 1:可以

    把它想象成在里面定义一个新的匿名类

    有关匿名课程的更多信息

    请看这个链接 enter link description here

    问题 2: case 1:如果值为 1,则表示不执行任何操作 case default: 表示如果值不 = 1 则执行下面的函数

    更多关于 switch case 语句的信息

    please point to this link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多