Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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 在某些情况下不使用“new”关键字_Java_C#_Selenium_Object - Fatal编程技术网

Java 在某些情况下不使用“new”关键字

Java 在某些情况下不使用“new”关键字,java,c#,selenium,object,Java,C#,Selenium,Object,我看到您使用new关键字初始化了一个对象 WedDriver driver=new FirefoxDriver(); 但在某些情况下,它不被使用。喜欢 DesiredCapabilities caps= DesiredCapabilities.firefox(); 为什么不在上面的第二种情况下使用它?new关键字用于调用类的构造函数。这是创建类的新实例的唯一方法 So WedDriver driver=新FirefoxDriver;正在创建FirefoxDriver类的新实例,在本例中,该类

我看到您使用new关键字初始化了一个对象

WedDriver driver=new FirefoxDriver();
但在某些情况下,它不被使用。喜欢

DesiredCapabilities caps= DesiredCapabilities.firefox();
为什么不在上面的第二种情况下使用它?

new关键字用于调用类的构造函数。这是创建类的新实例的唯一方法

So WedDriver driver=新FirefoxDriver;正在创建FirefoxDriver类的新实例,在本例中,该类派生自WedDriver类

第二个示例(不带new关键字)是现有对象引用的变量赋值示例,即在某个点之前已实例化的变量赋值,通过调用DesiredCapabilities类中的firefox方法返回:


在第一个示例中,您告诉java构造对象保留存储并调用类的构造函数来初始化对象


在第二个例子中,你调用一个静态方法类方法,它在幕后为你做新的工作,或者找到一个对已经构造好的对象的引用,它可以返回。

首先了解新对象和函数之间的区别。我已经多年没有接触Java了,所以我没有一个明确的答案,但是,获取某个实例的方法通常在内部使用“new”。该方法正在进行一些检查,以确保需要存在的所有内容实际上都存在,并且在出现问题时不会返回实例。这使得构建一个因任何原因都不可用的实例变得不可能。该语法也可用于单例设计模式。感谢您的回复。下面是代码。为什么他们使用DesiredCapabilities作为引用类型。是这样做的吗?如果要存储类?中某个方法的结果,则使用与引用类型相同的类。感谢您的回复。下面是代码。为什么他们使用DesiredCapabilities作为引用类型。是这样做的吗?如果要存储来自类?的方法的结果,则采用与引用类型相同的类?。另外,我是编程新手。这里的firefox方法是否需要有一个返回类型,或者它只是意味着firefox方法中的变量和计算的组合将作为一个集合存储在引用变量caps中?仅供参考,我在问题中粘贴了完整的代码,以便于理解上下文。对不起,我刚刚意识到我无法编辑我的原始问题firefox方法可能会使用DesiredCapabilities的返回类型或可以转换为该类型的内容来定义。因此,在firefox中,您会看到如下内容:返回新的DesiredCapabilitiesparm1、parm2;在代码示例中,这是返回如何返回对要分配给var caps的对象的引用的一种可能性。
DesiredCapabilities caps= DesiredCapabilities.firefox();