[英]Get dependecy instance from instance with package and name
假設我有實例A,其中我與實例B和C有依賴關系.B和C也有與B1和C1的依賴關系
可以使用反射和包字符串作為“B.B1”和“C.C1”從A獲取那些實例。
它會是這樣的
B1 b1 = A.getMagicallyTheInstance("B.B1");
C1 c1 = A.getMagicallyTheInstance("C.C1");
您可以使用java反射或OGNL來實現。 OGNL用於對象圖表符號語言及其想要使用的符號。 但是如果你想使用反射,你必須遵循這些步驟。
順便說一句, getResourceAsStream
用於讀取類路徑資源作為inputStream。 據我所知,它注意到反思。
但在OGNL中它更簡單。
A
一個例子 就這樣。
我剛剛意識到你的Spring標簽。 您可以輕松地使用Spring EL實現它。 這是一個例子:
ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("b.b1");
// I Assume A has a field name b, and B has a field name b1
B1 b1 = (B1) exp.getValue(aInsantece);
正如bhdrkn所建議的那樣,OGNL可能就是這樣。
但是,如果您想使用純反射,您可以執行以下操作:
Container instance = new Container();
Class<? extends Container> klass = instance.getClass();
Field field = klass.getField("value");
String actualValue = (String) field.get(instance);
Container看起來像這樣:
public class Container {
public String value = "default";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.