接受一个字符串,判断调用类里面那个方法
时间: 2024-09-29 16:05:07 浏览: 26
当你有一个字符串,并想根据该字符串的内容动态地决定调用哪个类的方法,这通常涉及到策略模式或条件语句。策略模式是一种行为设计模式,它允许你将各种算法封装到独立的对象中,然后将它们作为参数传递给客户端,从而让客户端可以选择使用哪种算法。
例如,在Java中:
```java
class MethodSelector {
private String methodName;
public void setMethodName(String method) {
this.methodName = method;
}
public void executeMethod(Object obj) {
if (obj instanceof MyClass) {
Method method = MyClass.class.getMethod(methodName);
if (method != null) {
try {
method.invoke(obj);
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
e.printStackTrace();
}
} else {
System.out.println("Method not found.");
}
} else {
System.out.println("Invalid object type.");
}
}
}
// 使用时
MethodSelector selector = new MethodSelector();
selector.setMethodName("myMethod"); // 假设myMethod是在MyClass中存在的
MyClass myObject = new MyClass();
selector.executeMethod(myObject); // 动态调用相应的方法
```
在这个例子中,`executeMethod`方法会尝试找到指定类型的对象(`MyClass`)并调用相应的`methodName`。如果方法不存在或者传入的对象不是`MyClass`实例,就会有不同的处理结果。
阅读全文