【问题标题】:Method which the return-type is the same autoclass?返回类型是相同自动类的方法?
【发布时间】:2018-08-30 19:56:04
【问题描述】:

我有一个疑问。为如下Java类代码:

public class myClass{
    public myClass myMethod(){
        ...
    }
    ...
}

1) myMethod 返回类型怎么可能是自动类?这对我来说没有逻辑意义。 2) 什么意思?

谢谢:)

【问题讨论】:

  • 当您说“自动类”时,您只是指与定义方法的类相同的类吗?如果是这样,为什么不应该你能够做到这一点?例如,为什么Stringsubstring 方法不能返回String?它应该返回什么?
  • 另一种返回this的常见情况,因此自己的类型是builder pattern
  • @LuCio 或不可变类型的方法,例如BigDecimal.add.
  • 只有一个怀疑?我深深地钦佩你钢铁般的决心。
  • @AndyTurner 是的,这是我使用的定义。在您的示例中,我有点争先恐后地在类中定义一个方法,返回同一个类。在我看来,从“外部”返回一个类的方法更自然,因为“外部”意味着该类是“完全定义的”,具有“封闭形式”。在此类中引用其类的方法看起来像“递归”。例如,可以在 StringUtils 类中定义子字符串。更有条理。

标签: java return-type autoclass


【解决方案1】:

问题中似乎存在一些拼写错误,似乎您在问方法返回类型如何可能与类相同。

答案是:这是因为返回类型仅用于指定数据类型,而类是整数字符串等数据类型。

这是工厂设计模式的例子



回到您的问题,myMethod return myClass 表示它返回 myClass 的对象
我们可以对返回值执行任何您可以对 myClass 对象执行的操作

【讨论】:

    【解决方案2】:

    好吧,看看你们的回答,伙计们,我认为我的问题应该不清楚。

    我在理解返回类型方面没有问题。返回一个类是很自然的。

    我的疑问(不仅仅是生活中的一个疑问,而是许多其他疑问中的一个)在于方法返回实现该方法的同一个类。它看起来像某种“循环”或“递归”。我想象一个方法返回一个类,如果这个类在这个方法之外,因为在这种情况下,外部类将被完全实现。当一个方法返回声明该方法的同一个类时,我认为该类还没有完全实现。

    这是我的疑问,但我认为今天对我来说更清楚了。

    感谢所有回复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-26
      • 2016-01-29
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 2014-11-24
      • 1970-01-01
      相关资源
      最近更新 更多