【问题标题】:generic getter method通用 getter 方法
【发布时间】:2013-02-15 08:48:06
【问题描述】:

我需要帮助来弄清楚如何实现一个通用的 getter 方法。这是我到目前为止的代码:

public class Pair<X extends Comparable<X>, Y extends Comparable<Y>>
    implements Comparable<Pair<X, Y>>{

    private final X first;
    private final Y second;

    public GENERIC getX() {
        return X;
    }

    public GENERIC getY() {
        return Y;
    }

有人可以向我解释如何将 GENERIC 替换为此类的某种 &lt;A extends classA&gt; A 对象返回类型吗?我已经看到了具有通用返回值的其他方法的示例,但我无法理解如何在此处应用它。谢谢!

【问题讨论】:

标签: java generics methods return


【解决方案1】:

改变

public GENERIC getX() {
  return X;
}

public X getX() {
  return first;
}

extendstype constraint,第一次遇到类型名时需要。该类型的名称持有者就是它的名字

【讨论】:

  • facepalm,我应该先回来再回来,我把他们弄糊涂了,我真傻。然后 X 和 Y 对对象类型有意义......谢谢!
  • 发生在我们所有人身上。很高兴它有帮助。
【解决方案2】:

您已经定义了X 并且Y 具有您的泛型类型。您只需在方法签名中指定它们。然后像往常一样返回您的实例变量。您还需要一些东西来初始化您的 Pair,例如构造函数(尽管 setter 方法也可以工作):

public Pair(X x, Y y)
{
   first = x;
   second = y;
}

public X getX() {
    return first;
}

public Y getY() {
    return second;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 2013-10-19
    • 2021-12-02
    • 2018-05-21
    • 2011-04-14
    相关资源
    最近更新 更多