我确信互联网上有我想象的 java 基本功能的解释,但是因为我完全不知道此操作试图实现的目标,所以我没有正确描述搜索并且没有结果即将到来解释我感到困惑的事情。所以请指导我正确的方向,因为我找不到搜索这意味着什么的方法。
所以下面我有一个我感到困惑的例子,来自 GL2 gl = drawable.getGL().getGL2();
行。我知道如何将方法与对象(例如 object.method())等一起使用或与变量一起使用,但是这个引用的行与两个句号和方法不同,而不是一个。它到底想做什么?它似乎在为我创建一个“gl”对象,然后它使用 getGL2() 方法,但也是 getGL(),当我尝试使用相同的形式和一些方法进行测试时,我已经使我无法像那样同时链接它们。所以我会使用变量或对象并执行“.method().method2()”,但它不会起作用。
我也不明白它是如何创建一个对象“GL2 gl
”的,GL2
是类型,gl
是名称对象,但在“=”之后没有像我通常看到的"new"。
代码示例:
public void init (GLAutoDrawable drawable) {
GL2 gl = drawable.getGL().getGL2();
//GL2 gl2 = drawable.getGL().getGL2();
gl.glClearColor(0,0,0,1); // black
//gl2.glClearColor(0,0,0,1);
}
最佳答案
首先,init
方法接受一个参数 drawable
。
drawable
是 GLAutoDrawable
类型,它有一个名为 getGL()
的方法。
例如,类 GLAutoDrawable
可能是这样的:
public class GLAutoDrawable {
// other stuff
public GL getGL(){
// other stuff
return gl;
}
// other stuff
}
这里,getGL()
返回一个名为gl
的变量,其类型为GL
。尽管您提供的代码中未指定此名称,但我假设它名为 GL
。
(有关返回语句的更多信息,请阅读 http://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html)
然后,从 getGL()
返回的变量调用了方法 getGL2()
。
例如,GL
类可能如下所示:
public class GL {
// other stuff
public GL2 getGL2(){
// other stuff
return gl2;
}
// other stuff
}
类 GL
中的方法 getGL2()
返回一个名为 gl2
的对象,这就是代码中的最终变量。
基本上,GL2 gl = drawable.getGL().getGL2();
与以下内容相同:
GL g = drawable.getGL();
GL2 gl = g.getGL2();
除了它可以节省空间而不必命名新变量。
关于java - 在方法、变量或对象之间使用 java 中的两个句号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34259857/