Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缩写长对象链(java)_Java_Oop_Abbreviation_Comsol - Fatal编程技术网

缩写长对象链(java)

缩写长对象链(java),java,oop,abbreviation,comsol,Java,Oop,Abbreviation,Comsol,首先,我想告诉大家,我最近开始使用java和面向对象编程,所以请原谅我这个愚蠢的问题,但我在其他地方找不到明确的答案 我正在为Comsol模型制作一个模板,我想缩写代码的一部分,使其更具可读性。尽管以下代码段与Comsol编译器一起运行: Model model = ModelUtil.create("Model"); // Returns a model model.geom().create("geom1"); // add a component mode

首先,我想告诉大家,我最近开始使用java和面向对象编程,所以请原谅我这个愚蠢的问题,但我在其他地方找不到明确的答案

我正在为Comsol模型制作一个模板,我想缩写代码的一部分,使其更具可读性。尽管以下代码段与Comsol编译器一起运行:

Model model = ModelUtil.create("Model");    // Returns a model
model.geom().create("geom1");               // add a component
model.geom("geom1").create("circle")        // add a shape

//I would like to rewrite the following block of code:
model.geom("geom1").shape("circle").name("c1", "Circle");
model.geom("geom1").shape("circle").feature("c1").label("OuterDiameter");
model.geom("geom1").shape("circle").feature("c1").set("type", "curve");
model.geom("geom1").shape("circle").feature("c1").set("r", "0.5");
我想把model.geom(“geom1”).shape(“圆圈”)缩写成类似于MGS的东西

我需要这样一个命令很多次,因为我也想用它来缩写
model.material(“mat1”).propertyGroup(“def”)
model.sol(“sol1”).feature(“s1”).feature”(“fc1”)和
model.result(“pg2”).feature(“iso1”)
,将来可能还会有更多

我更熟悉Python,它可以让我做一些非常简单的事情,比如:

MGS = model.geom("geom1").shape("circle")
MGS.name("c1", "Circle")
MGSF = MGS.feature("c1")
MGSF.label("OuterDiameter")
MGSF.set("type", "curve")
我在java中找不到任何类似的表达式


谢谢

只需使用局部变量来存储重复访问的中间值。这不仅使代码更具可读性,而且在调用获取中间值的操作可能代价高昂的情况下提高了效率

大致如下:

Model model = ModelUtil.create("Model");    // Returns a model
Geom g = model.geom();
g.create("geom1");               // add a component
Component c = model.geom("geom1");
c.create("circle")                          

Circle ci = c.shape("circle");
ci.name("c1", "Circle");
Feature f = ci.feature("c1");
f.label("OuterDiameter");
f.set("type", "curve");
f.set("r", "0.5");

请注意,这只是一个定向示例,不打算仅通过复制和粘贴来实现。
Geom
组件
功能
Circle
类可能与方法的实际类名或实际返回类型不对应,我不知道您的代码所使用的API的任何细节

正如哈维在回答中所说。使用局部变量存储即时结果。但请记住:不要用大写字母写局部变量。请遵循Java命名约定。谢谢!与.getclass()方法一起,我能够找到相应类型的对象。这解决了我的问题。太好了,很高兴它有帮助。IDE本身(如果您正在使用IDE)或库的javadoc(如果确实有)也可能是提取这些信息的有用资源。