2011-08-03 23 views
0

我正在閱讀使用java的Excel文件,我已經爲我的業務邏輯編寫了一些方法,並且我想使用屬性File來實現。我可以從屬性文件中調用Java方法

什麼我想要做的是:

我有10列和10種方法,我需要申報從該文件屬性文件,請使用此方法。

假設列A我只想要2個方法,那麼我只能使用這2個方法,對於下一列B假設10個方法等等。

我可以這樣做還是有任何其他方式來實現這一點。

請建議我是否有其他方法來實現此目的。提前致謝。

+3

你的問題不清楚。提供一個清晰的例子,你稱之爲方法 – Snicolas

+0

嗨,我有像findSpaceatBegining();找到Sequenceno();等等所以它需要被動態地使用屬性文件來調用。 –

+0

給出一個簡短但具體的例子會更有幫助,例如,什麼是excel文件的內容,屬性文件將如何顯示,要求的輸出是什麼(即,這些方法會做什麼以及它們將操作哪些數據) 。 – Thomas

回答

0

你很難完全清楚你想要做什麼,但是無論如何你絕對不能從.properties文件(或者從Java調用包含在.properties文件中的方法)調用任何Java方法。一個.properties文件不可執行,也不會被任何標準Java實用程序視爲可執行/可解釋的代碼。實質上,它包含的只是數據,數據不能調用或被調用。

然而,你可以做的是通過使用反射將輸入文件中的文本方法調用映射到針對一個或多個Java對象的實際方法調用,或者更簡單(但不太靈活/可擴展地)存儲一組預定義的代碼,您可以使用switch/if-else塊直接映射到方法調用,也可以將所需的代碼存儲爲JavaScript並使用現有的基於Java的JavaScript解釋器來執行代碼。

2

爲防止誤解:屬性文件只是文本文件,所以您需要使用Java代碼才能處理它們。他們只會提供一個String-> String(鍵 - >值)映射,因此您需要自己分析和解釋這些字符串。

話雖這麼說,這裏是你可能(要)做什麼的建議:

因爲你的問題是不是清楚了,我會做一些假設:

  1. 你屬性文件包含類似:

    列1 =方法1,method7
    列2 =方法1,方法2,方法3
    Ë TC。

  2. 的方法都是在一個類使用一個共同的簽名

  3. 當解析Excel文件您可能希望應用該方法基於屬性的列文件中聲明。

所以,這裏是你能做什麼一些提示:

  1. 解析屬性文件並創建每列方法名的列表
  2. 在細胞/列工作時得到方法名稱
  3. 使用YourClass.class.getMethod(methodName, parameterTypes)可獲得Method實例。
  4. 調用Method#invoke(...)來調用該方法。

編輯:

作爲替代具有一個類的所有方法,你也可以使用完整的類名,例如yourpackage.YourClass#method1,分爲#以獲取類名和方法,然後使用Class.forName(fqcn)獲取該類並最終在那上面調用getMethod(...)

如果簽名不同,則可能必須使用更復雜的表示法並解析參數類。

有解析器準備用於此,但我不知道任何。然而,像ElConfiguration這樣的一些apache共享項目可能對此任務有用。

+0

這就是我真正想做的事 –

相關問題