【问题标题】:Does Java allow passing a getter as a method parameter?Java 是否允许将 getter 作为方法参数传递?
【发布时间】:2019-01-16 16:26:43
【问题描述】:

没有 Lambda、谓词、接口。只是一个带有常规吸气剂的常规类。例如:

public int getWeight(){return weight;}

public int convertToLbs(int weight){some code here ...}


someObject.convertToLbs(someObject.getWeight())//valid???

谢谢

【问题讨论】:

  • 你试过了吗?
  • 在您的示例中,您没有传递方法引用,而是调用 getter 并传递返回值。
  • 是的,这是允许的,因为它返回 int 与将整数传递给方法一样好。
  • 范登奇 谢谢。 Java 使用按值传递。不确定什么是方法参考?你能详细说明一下吗?
  • 应该很容易测试...反正你的电话有点像int w = someObject.getWeight(); someObject.convertToLbs(w);

标签: java methods parameter-passing


【解决方案1】:

您当前的语法是有效的,但您正在传递 weight 值,因为 Java is pass-by-value

要为返回 int 的内容传递方法引用,您可以使用 IntSupplier

public int getWeight() { return weight; }
public int convertToLbs(IntSupplier s) { int w = s.getAsInt(); ... }

someObject.convertToLbs(someObject::getWeight);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2022-01-22
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多