如何创建;如果条件是“;基于java中的方法名

如何创建;如果条件是“;基于java中的方法名,java,Java,我有两个有名称的方法 firstMethod() secondMethod() 我想要一个基于方法名的if条件 例如: if (methodName.contains (firstMethod())) { } else { } 在Java中可能吗?可以使用 基本上,反射是一种从字符串传递到类、方法、构造函数和反之亦然的机制 但不清楚您想如何使用它,所以我不知道如何更清楚 在任何情况下,您都需要获得对的引用。从类方法中,可以通过该方法以字符串形式获取该方法的名称 一旦你有了字符串,你就可以

我有两个有名称的方法

firstMethod()
secondMethod()
我想要一个基于方法名的if条件

例如:

if (methodName.contains (firstMethod()))
{

}
else
{

}
在Java中可能吗?

可以使用

基本上,反射是一种从字符串传递到类、方法、构造函数和反之亦然的机制

但不清楚您想如何使用它,所以我不知道如何更清楚

在任何情况下,您都需要获得对的引用。从类方法中,可以通过该方法以字符串形式获取该方法的名称


一旦你有了字符串,你就可以像通常使用字符串方法一样对它们进行比较。

Class.java
有一个方法
#getDeclaredMethods
,它返回一个数组,其中包含反映类的所有声明方法的
方法
对象
Method
类又有
#getName()
,它返回方法名的
字符串表示形式。

您很可能真的不想这样做。相反,为什么不在您调用的方法上设置一个参数,并让它指示行为是什么呢。例如:

void firstMethod() {
   someMethod(true);
}

void secondMethod() {
   someMethod(false);
}

void someMethod(boolean fromFirstMethod) {
   if (fromFirstMethod) {
      // some code...
   } else {
      // some other code...
   }
}

你事先知道方法名吗?是的,我知道方法名在它之前[例如-这里是firstMethod()和secondMethod()]你想知道一个方法名是否包含另一个方法的返回值吗?你为什么要那样?你能给我们你的真实世界用例吗?为什么不直接使用字符串(因为您在编写代码时知道方法名称)?让我猜猜,您想创建一个单独的方法,如果从
firstMethod
secondMethod
调用它,它会做不同的事情。请不要那样做。如果@Tom是对的,那么是的,请不要那样做。把它分成两种不同的方法。如果这两者之间有很多共同的代码,那么你可以将它们分割成各自的方法。谢谢大家的建议。尽管这可能符合OP的要求,但仍然很难看。但是OP想要这样并不是你的错。是的,我同意这很难看,这更像是试图向OP展示一个简单的替代反射答案的方法,对于这样一个琐碎的问题来说,这是不过分的。这可以很容易地重构成更好的东西。如果我们有更多的OPs代码将我们的答案建立在策略模式或基本继承之类的东西上,可能会提供一个更优雅的解决方案。