【问题标题】:How to remove java method pararmeters when certain condition is met满足特定条件时如何删除java方法参数
【发布时间】:2021-10-19 14:30:08
【问题描述】:

我正在尝试找到一种在满足特定条件时删除方法参数的方法。如果条件满足 - 那么参数应该从方法中移除 - 但如果条件不满足 - 参数应该再次添加回该方法。有没有办法在java中做到这一点 - 我知道重载的方法可以做到这一点 - 但是方法如何删除它的参数并再次添加它们是我的问题。

if(condition == true) {
     //remove the parameter from the method because it is not needed
} else {
    //add the parameter back again to the method so the code below can use it
}

/*
code which uses the parameter again...
*/

非常感谢您的帮助 - 希望这不会太令人困惑

【问题讨论】:

  • 为什么要从方法中删除参数,而不是不使用参数?是否只是存在而有时不被使用而导致问题?
  • 你不能只使用方法的重载版本
  • 看来,您正在尝试实现方法重载,请检查此方法重载docs.oracle.com/javase/tutorial/java/javaOO/methods.html
  • 这不是你能做的事。您不能添加和删除参数,只能不使用它们。
  • 看起来很像XY problem。你为什么需要这个?在 Java 中还有其他方法可以实现类似的结果。

标签: java function methods parameters conditional-statements


【解决方案1】:

Java 不支持在运行时更改方法签名。您可以改为重载相同的方法,使用 2 个签名,如下所示:

public void method(int param1, int param2, int optional) {}

public void method(int param1, int param2) {
    method(param1, param2, 'value, that is optional, but not necessary currently');
}

无法更改签名,因为它会破坏使用原始签名访问方法的所有内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多