multithreading - 使用多线程时Kotlin无法解析的引用

标签 multithreading kotlin

因此,我尝试将kotlin与硒和线程一起使用,但是一个参数不起作用。这是我的代码:

class myClass(parameter1 : String, parameter2 : String, parameter3 : Int) : Thread(){
    init{
        var driver : ChromeDriver = ChromeDriver()
    }
    override fun run() {
        driver.get("somewebsite")
        var id_field = driver.findElementByName("iD")
        id_field.sendKeys(parameter1)
        id_field.submit()
        name = parameter2 + parameter3.toString()
        //At this Point, Intellij Idea tells me: Unresolved reference: parameter3
        name_field = driver.findElementByName("name")
        name_field.sendKeys(name)
        name_field.submit()


        }
}

fun main() {
        System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver")
        val threads: Array<myClass> = Array(2) { myClass("some_id", "name", it)}

    }


应该发生的是,脚本进入了我的网站,输入了名称和iD。但是我希望能够运行脚本的多个线程,其中将线程“迭代”(这是参数3)添加到我的名字中。

因此,例如:
-线程1使用以下名称登录:
-线程2使用以下名称登录:
(...)
-线程20使用以下名称登录:

但是我的问题是:
Kotlin为什么不说: Unresolved reference :参数3?

最佳答案

您可以将其存储在类范围变量中class myClass(val parameter1 : String, var parameter2 : String, var parameter3 : Int)
如您所示,它只是在构造函数中消失的变量。

关于multithreading - 使用多线程时Kotlin无法解析的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60062832/

相关文章:

java - Android postDelayed Handler 在 For 循环中?

java - Java 程序中的构造函数和方法未按预期工作

multithreading - 创建一个将一直阻塞直到被n/2个以上线程调用的函数(伪代码)

java - Java 分布式系统中的线程

Android BottomNavigationView 图标和文本标签在模拟器平板电脑中相互重叠

java - 从第 5 版开始, 'enum' 是关键字,不能用作标识符

java - 如何在不运行其他安装程序的情况下升级 jpackage 应用程序?

c++ - 测量多线程 C++ 应用程序中的时间

java - 在flutter中配置local_auth插件

list - 如何在 Kotlin 中从另一个列表创建新列表?