java - 在方法、变量或对象之间使用 java 中的两个句号

标签 java object methods

我确信互联网上有我想象的 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

drawableGLAutoDrawable 类型,它有一个名为 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/

相关文章:

java - 在数组中搜索字符串

java - 如何修复JDK11 Tomcat9 Spring Application上的JAVAX运行时错误

javascript - 将对象插入数组

javascript - "string.match()"不是函数?

Java 多线程对象

java - java选择文件夹的调用方法

java - "Google Maps for Mobile"上的滚动如何工作?

java - 使用正则表达式删除java中转义的unicode字符串

java - 帮助 Hibernate 集合外键映射

java - 我的 showChar 方法有什么问题?简单程序方法介绍