【问题标题】:Convert "auto property" in C# to Java alternative code将 C# 中的“自动属性”转换为 Java 替代代码
【发布时间】:2016-03-27 00:39:18
【问题描述】:

我是 Java 新手,目前正在尝试学习 "Selenium Automation Framework" 课程。不幸的是,本教程是用 C# 编写的。我被 C# 中的一段代码卡住了,无法将其转换为 Java 替代代码。据我了解,

public static IWebdriver Instance { get; set; } 是一个在 Java 中不可用的自动属性。有什么建议,不胜感激?

package WordpressFramework;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Driver {

public static IWebdriver Instance { get; set}

    public static void Initialize()
    {
        WebDriver Instance;
        Instance=new FirefoxDriver();
        Instance.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);  
     }
}

【问题讨论】:

    标签: java c# selenium


    【解决方案1】:

    Java 没有属性,那么您可以使用get/set methods。此外,最好将名称从无意义的“instance”更改为“webDriver”。

    private static IWebdriver webDriver;
    
    public static IWebdriver getWebDriver() {
        return webDriver;
    }
    
    public static void setWebDriver(IWebdriver webDriver) {
        Driver.webDriver = webDriver;
    }
    

    【讨论】:

    • 在Java selenium jar中,IWebDriver接口被定义为WebDriver
    • 静态方法不会有this 引用?
    【解决方案2】:

    IWebDriver 接口在 Java 中定义为 WebDriver。

    public class Driver {
    
        private Webdriver webDriver;
    
        public static Webdriver getWebDriver() {
            return webDriver;
        }
    
        public static void setWebDriver(Webdriver webDriver) {
            this.webDriver = webDriver;
        }
    }
    

    在eclipse中你只需要声明一个私有变量并使用eclipse的代码生成能力来生成getter和setter。

    右键->源码->生成setter和getter

    参考:Is there a way to automatically generate getters and setters in Eclipse?

    【讨论】:

      【解决方案3】:

      放下get/set,然后离开: public static IWebdriver Instance;

      它将是一个成员变量而不是一个“属性”。

      【讨论】:

        【解决方案4】:

        这段C#代码:

        public static IWebdriver Instance { get; set}
        

        与Java相比,是一种声明变量和set getter和setter的简化方式。

        【讨论】:

        • 从哪个版本的 Java 具有 set 和 get 属性?
        • @AlexButenko 我应该更新我的答案。我的意思是 C# 中的 public static IWebdriver Instance { get; set} 是一种与 java 相比声明 setter 和 getter 的简化方式。
        • 哦,我被你之前的回答弄糊涂了。我以为 Java 终于明白了 :)
        猜你喜欢
        • 2012-04-10
        • 1970-01-01
        • 2014-09-16
        • 1970-01-01
        • 2016-04-14
        • 2014-05-27
        • 2015-09-27
        • 2013-07-12
        • 2014-12-22
        相关资源
        最近更新 更多