引用带有变量的包? Java
Refer to a package with a variable? Java
我可以用变量名引用 java 中的特定包吗?
假设我想在 stuff.biscuit.jelly.sausages.foo()
的嵌套结构中访问方法 foo()
,(其中 jelly
是一个包,sausages
是一个 class)
我可以设置一个变量 var
使得 var = stuff.biscuit.jelly.sausages
,然后通过以下方式访问 foo()
:
var.foo()
? (或类似的东西)
编辑:
关于导入,如果我想使用很多不同的 foo() 方法,有什么建议,例如:
stuff.biscuit.jelly.cherry.foo()
stuff.biscuit.jelly.apple.foo()
stuff.biscuit.jelly.strawberry.foo()
?
编辑:提议的重复是无关的。它是在谈论对变量使用与包相同的名称。我说的是引用带有变量的嵌套包。
不,你不能那样做。您能做的最好的事情就是将您的方法定义为静态的,并对相应的 class 进行静态导入。然后就可以直接调用那个方法了。
类似
import static stuff.biscuit.jelly.Sausages.*;
然后在您的代码中只需使用
foo();
您可以使用反射获取对方法的引用,并使用 invoke(...) 调用该方法。假设 'sausages' 是香肠的一个实例 class:
Class cl = sausages.getClass();
Method myMethod = cl.getMethod("myMethod");
myMethod.invoke(params);
尽管一切都说完了,为什么不直接导入 package/class 并以这种方式调用方法呢?
我可以用变量名引用 java 中的特定包吗?
假设我想在 stuff.biscuit.jelly.sausages.foo()
的嵌套结构中访问方法 foo()
,(其中 jelly
是一个包,sausages
是一个 class)
我可以设置一个变量 var
使得 var = stuff.biscuit.jelly.sausages
,然后通过以下方式访问 foo()
:
var.foo()
? (或类似的东西)
编辑:
关于导入,如果我想使用很多不同的 foo() 方法,有什么建议,例如:
stuff.biscuit.jelly.cherry.foo()
stuff.biscuit.jelly.apple.foo()
stuff.biscuit.jelly.strawberry.foo()
?
编辑:提议的重复是无关的。它是在谈论对变量使用与包相同的名称。我说的是引用带有变量的嵌套包。
不,你不能那样做。您能做的最好的事情就是将您的方法定义为静态的,并对相应的 class 进行静态导入。然后就可以直接调用那个方法了。
类似
import static stuff.biscuit.jelly.Sausages.*;
然后在您的代码中只需使用
foo();
您可以使用反射获取对方法的引用,并使用 invoke(...) 调用该方法。假设 'sausages' 是香肠的一个实例 class:
Class cl = sausages.getClass();
Method myMethod = cl.getMethod("myMethod");
myMethod.invoke(params);
尽管一切都说完了,为什么不直接导入 package/class 并以这种方式调用方法呢?