gpt4 book ai didi

java - Java 中的 getDeclaredMethod 失败

转载 作者:行者123 更新时间:2023-12-01 18:22:56 33 4
gpt4 key购买 nike

我有一个批处理应用程序,它使用带有方法名称的文件输入,然后使用这些名称来执行设计上具有相同名称的方法。

例如File有getTemperature,然后在类中执行getTemperature。

我正在使用以下 Java:

java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1~0.13.10.1)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)

代码是:

 if (args.length < 2) {
System.out.println("SF <retailername> retailername <manName> man");
System.exit(1);
}
GetSoogrData wa = new GetSoogrData();
try {
BufferedReader bf = new BufferedReader(new FileReader(args[0]));

String line = null;
while ((line = bf.readLine()) != null) {
Class c = wa.getClass();


c.getDeclaredMethod(line, null);
}

编译器会给出有关原始类型(类是原始类型)的警告,还会对 getDeclaredMethod 发出有关类型的警告。该类刚刚声明:

public class GetSoogrData {

private HashMap<String, Integer> wordDictionary = new HashMap<String, Integer>();
private File inputFile;

private File outputFile;
private String retailerName;
private String man;
private String[] word;

public void getTemperature() {
System.out.println("device temp");
}

我正在使用 getTemperature 进行测试。

我尝试了几个版本的代码,没有错误,但也没有结果。该代码似乎完全忽略了该方法。我在没有 getDeclaredMethod 的情况下进行了测试,它工作正常,因此可以访问该方法并实例化该类。因此,错误在于实际的 getDeclaredMethod。我看到Java版本会影响这个。

有人有解决办法吗?

最佳答案

你应该这样做:

Method method = c.getDeclaredMethod(line);
method.invoke(wa);//this will call method whatever is there in your line method without any parameters

关于java - Java 中的 getDeclaredMethod 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27165615/

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