gpt4 book ai didi

java - 如何在java中动态传递方法名

转载 作者:搜寻专家 更新时间:2023-11-01 01:34:40 25 4
gpt4 key购买 nike

我有一个类如下

public class Test
{
private Long id;
private Long locationId;
private Long anotherId;

public Long getId() {
return id;
}


public void setId(Long id) {
this.id = id;
}


public Long getLocationId() {
return locationId;
}


public void setLocationId(Long locationId) {
this.locationId = locationId;
}


public Long getAnotherId() {
return anotherId;
}


public void setAnotherId(Long anotherId) {
this.anotherId = anotherId;
}
}

我在不同的地方使用了以下方法,通过id、locationId或anotherId找到匹配的对象

public Test getMatchedObject(List<Test> list,Long id )
{

for(Test vo : list)
if(vo.getId() != null && vo.getId().longValue() == id.longValue())
return vo;
}

public Test getMatchedLocationVO(List<Test> list,Long locationId )
{

for(Test vo : list)
if(vo.getLocationId() != null && vo.getLocationId().longValue() == locationId.longValue())
return vo;
}

public Test getMatchedAnotherVO(List<Test> list,Long anotherId )
{

for(Test vo : list)
if(vo.getAnotherId() != null && vo.getAnotherId().longValue() == anotherId.longValue())
return vo;
}

我为每个参数使用了不同的方法来找出对象。有什么方法可以动态传递方法名称吗?

提前致谢...

最佳答案

你需要使用反射来做到这一点。

import java.lang.reflect.*;

方法 method = obj.getClass().getMethod(methodName);

然后用method.invoke(obj, arg1, arg2);调用它

这有点类似于调用在 javascript 中的工作方式(如果您熟悉的话),除了不是传递上下文,而是传递对象和对其方法的引用。

关于java - 如何在java中动态传递方法名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22419511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com