如何以编程方式将变量添加到Shell中,从中调用了一些代码?教程
使用jshell,有没有办法在解释器的范围内创建变量?我有类似的东西
Map<String,Object> vars = loadVarsFromSomething();
我希望能够做类似的事情
for ( Map.Entry<String,Object> key : vars )
{
scope.put( key.getKey(), key.getValue() );
}
那可能吗?
请注意,我所指的“范围”是jshell解释器正在使用的Shell对象的实际范围.我需要获取对shell调用的引用,以便我可以创建变量看起来好像是由用户/来电者分配的..
解决方法:
要从输入文件加载变量,您可以使用Jshell script本身.
假设名为some.jsh的Jshell脚本需要提供两个变量,其中一个是String,另一个是原始整数.
// Random stuff initially
{
System.out.println("One Jshell Script");
}
// Variables to be supplied when jshell loads.
int x = 10;
String y = "Cool";
使用以下命令执行上述脚本:
jshell some.jsh
此后,您可以使用其标识符访问这些变量,如下所示: –
毫无疑问,您可以使用更复杂的数据结构(在您的情况下为Map< String,Object> vars)以及在脚本中存储信息.