簡體   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