繁体   English   中英

我可以从Java中的属性文件中调用方法吗?

[英]Can i Call methods From Properties File in Java

我正在使用java读取Excel文件,我已经为我的业务逻辑编写了一些方法,并且我想使用属性File实现。

我想做的是:

我有10个列和10个方法,我需要在属性文件中使用该文件声明此方法。

假设对于列A,我只想要2种方法,那么我只能使用这2种方法,对于下一列B,假设有10种方法等等。

我可以这样做,还是有其他方法来实现这一点。

如果有任何其他方法可以实现这一点,请建议我。 提前致谢。

为了防止误操作:属性文件只是文本文件,因此您需要使用Java代码来处理它们。 它们只提供String-> String(key-> value)映射,因此您需要自己解析和解释字符串。

话虽这么说,这是一个关于你可能(想)做什么的建议:

既然你的问题不是那么明确,我会做几个假设:

  1. 您的属性文件包含以下内容:

    列1 =方法1,method7
    列2 =方法1,方法2,方法3
    等等

  2. 这些方法都使用公共签名在一个类中声明

  3. 解析excel文件时,您可能希望根据属性文件将方法应用于列。

所以,这里有一些关于你可以做什么的提示:

  1. 解析属性文件并为每列创建方法名称列表
  2. 处理单元格/列时,获取相应列的方法名称
  3. 使用YourClass.class.getMethod(methodName, parameterTypes)获取Method实例。
  4. 调用Method#invoke(...)来调用该方法。

编辑:

作为在一个类中使用所有方法的替代方法,您还可以使用完全限定的类名,例如yourpackage.YourClass#method1 ,在#拆分以获取类名和方法,然后使用Class.forName(fqcn)来获取class,最后调用getMethod(...)

如果签名不同,您可能必须使用更复杂的表示法并解析参数类。

有解析器准备用于此,但我不知道。 但是,像ElConfiguration这样的一些apache公共项目可能对此任务有用。

你完全不知道你想要做什么,但无论如何你绝对不能从.properties文件“调用”任何Java方法(或从Java调用到.properties文件中包含的方法)。 .properties文件不可执行,任何标准Java实用程序也不将其视为可执行/可解释代码。 实质上,它包含的只是数据,而数据无法调用或被调用。

然而,你可以做的是通过使用反射来将输入文件中的文本方法调用映射到针对一个或多个Java对象的实际方法调用,或者更简单地(但不那么灵活/可扩展)存储一组预定的代码,使用switch / if-else块直接映射到方法调用,或者将所需的代码存储为JavaScript,并使用现有的基于Java的JavaScript解释器来执行代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM