kotlin setter infinte递归

我正在测试Android上的kotlin,并遇到一个问题,两个变量的setter在一个infinte递归中被调用,因为它们在初始设置时试图互相改变。 这是一个示例代码 class Example { var a: Int = 0 set(value) { b = a+10 } var b:Int = 0 set(value) { a = b-10 } } 然后说我使用下面的代码: val example = Example() example.a = 10 它最终导致一个infinte递归,最终是一个计算器。 b的setter调用setter, a又调用setter为b 。 它永远持续下去。 我希望能够在每次设置b时更新b的值,而且每当b被设置时更新a的值。 那里的科特林专家有什么想法? 在这种情况下,我是否需要将Java设置为setter,以便在为a或b赋值时不会调用setter代码。 还是有一些漂亮的Kotlin善良,我可以使用?

吸毒者和安置者在Kotlin

例如,在Java中,我可以自己编写getter(由IDE生成),也可以在lombok中使用@Getter之类的Annotations – 这非常简单。 但是Kotlin 默认有getter和setter 。 但我不明白如何使用它们。 我想说的是,可以说 – 类似于Java: private val isEmpty: String get() = this.toString() //making this thing public rises an error: Getter visibility must be the same as property visibility. 那么吸气剂如何工作呢?

配置kotlin插件更新失败?

我试图通过这个窗口更新kotlin 插件 : 1-我检查更新。 2-新版本出现,我点击安装。 3-下载并安装后,我重新启动android studio。 我试了5次,每次kotlin插件都不更新。 为什么我不能更新它? 有点困惑的plugins我可以找到最终版本,但是当我打开配置kotlin插件更新它总是检查更新并安装它。

Kotlin工具栏菜单图标问题

我将以下Java代码转换为Kotlin代码。 Android Studio不显示任何错误消息。 但结果是不同的。 我添加了两个模拟器结果的图片。 正如你所看到的Java工作正常,并显示在工具栏中的3点菜单图标。 但是Kotlin代码不起作用。 是否有人知道错误是什么? 希望得到一些帮助。 谢谢。 Java的: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_home, container, false); //… setHasOptionsMenu(true); return view; } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflater) { menuInflater.inflate(R.menu.menu_main, menu); } @Override public void onPrepareOptionsMenu(Menu menu) { MenuItem settings = menu.findItem(R.id.settings); MenuItem singOut […]

将java转换为kotlin

我正在用orbit软件包开发一个Kotlin应用程序,但是我有一些问题来定义演员Unresolved reference: T class HelloActor():AbstractActor<T>,Hello 应该是什么T参数? 在docs中: * @param <T> a class that represents the state of this actor.

在Kotlin的匿名类与lambdas

我正在尝试将我的闲暇时间项目从Java重新编写到Kotlin(了解它),并遇到了一些问题。 研究把我带到{ function() }但它没有帮助我 在Java中我有这个接口: public interface Shuffling<T> { List<T> shuffle(List<T> list, ShuffleCallback callback); interface ShuffleCallback { void onShuffle(int addedTo, int randomIndex); } } 我试图在Kotlin中添加测试对象到洗牌算法列表中: val algoList = ArrayList<Shuffling<Int>>() algoList.add(Shuffling { list, callback -> { Timber.d("Test!") ArrayList<Int>() // how to return this value? }}) 如何添加多行到lambda函数? 另外我还有一个麻烦的例子: Kotlin界面: interface Drawable { fun draw() } 和Kotlin实现: private […]

Kotlin弹簧安全配置

从1.0.0-beta-242升级到Kotlin 1.0.0-beta-3595后,以下代码不能编译: @Throws(Exception::class) override fun configure(http: HttpSecurity) { http.addFilterBefore(AuthenticationFilter(authenticationManager()), BasicAuthenticationFilter::class.java) http.csrf().disable() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and().authorizeRequests() .antMatchers("/authorization/**", "/public/**").permitAll() .antMatchers("/**").authenticated() } 返回的错误是: SecurityAssembly.kt: (48, 65): Unresolved reference: permitAll 编辑: 来自流行的Spring Security框架的permitAll方法的签名是: public ExpressionInterceptUrlRegistry permitAll() { return access(permitAll); } 我错过了什么或者这是一个错误?

Android Kotlin .visibility

我有这样的代码,应该使图像可见,但我不知道它应该如何写入Kotlin。 我正在尝试在Kotlin中使用.visibility ,我不知道该怎么给它一个价值。 它基于setVisibility() 。 码: fun hacerVisibleLaFoto(v: View) { imageView.visibility = 1; } 我把1放在值域中,因为在那里需要一个整数值,这是我的占位符值,直到我找到真正的值。 =号后面应该显示的值是什么?

Kotlin KDoc:文档?

我在 这里看到, 在这里和那里引用了KDoc,相当于Kotlin的JavaDoc实用程序。 但是,我找不到有关如何使用它的任何文档,更不用说如何定制它或将其集成到Maven或Gradle中。 我知道Kotlin API文档是使用KDoc生成的,因为页面源代码有以下的HTML注释: <!– Generated by kdoc on Sun Jul 06 20:27:33 UTC 2014 –> 那么,有没有关于如何使用KDoc的文档呢?

混合Kotlin + Java与Maven,未解决的参考

我有一个Maven项目与Kotlin代码hello.kt调用Java代码JavaFoo.java调用Kotlin代码KotlinFoo.kt 。 hello.kt也直接调用KotlinFoo.kt 。 我试图用mvn clean install使用kotlinlang的Maven文档中描述的Maven设置来构建它。 如果hello.kt不调用JavaFoo (但是我把JavaFoo留在了项目中),那么这样做就好了。 文档中说,应该在Java编译器之前调用Kotlin编译器,这意味着所有的Kotlin代码都需要在任何Java代码之前编译,即使用这种设置,您可以从Java调用Kotlin,反之则不然。 但是,文档将这种设置描述为“混合代码应用程序”,而不是“从Java调用Kotlin”。 换句话说,这种失败似乎与文件似乎暗示的一致,但与他们直接说的不一致 – 或者我只是误解了一些东西。 我想从另一个语言中调用每种语言。 有没有一个Maven的配置,将这样做,请? (我查看了混合代码设置的各种StackExchange问​​题,而且这些解决方案都不适用于我。) 按要求添加代码:pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example.kotlindemo</groupId> <artifactId>kotlin-demo</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>kotlin-demo</name> <properties> <kotlin.version>1.1.2-2</kotlin.version> <kotlin.compiler.incremental>true</kotlin.compiler.incremental> <main.class>com.example.kotlindemo.HelloKt</main.class> </properties> <dependencies> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib</artifactId> <version>${kotlin.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>kotlin-maven-plugin</artifactId> <groupId>org.jetbrains.kotlin</groupId> <version>${kotlin.version}</version> <executions> <execution> <id>compile</id> <phase>process-sources</phase> <goals> <goal>compile</goal> </goals> <configuration> […]