我试图在我的Kotlin模型类中生成Getters和Setters,而不需要手动编写代码,但是这些选项没有显示在Android的generate菜单中。
我的模型类(Kotlin)
import com.google.gson.annotations.Expose
import com.google.gson.annotations.SerializedName
public class EventsRoadSummaryAPINodeModel {
@SerializedName("road_name")
@Expose
var road_name
我的Kotlin项目中有数据类,用于JSON Rest响应。示例:
data class WeatherResponse(val city: String, val temperature: Double, val humidity: Double)
为了完全填充代码覆盖率约束,我想为上面的数据类编写一些测试。
什么单元测试对Kotlin数据类有意义?
我想创建一个WeatherResponse对象和相应的JSON字符串(来自服务器的响应),将该字符串解析为WeatherResponse对象并进行比较。
我已经开始学Kotlin了。我目前的背景是Java。我发现Kotlin中的类属性与Java中的类字段非常不同,尽管它们看起来很相似。在他的问题中,我想把这两者之间的所有技术分歧集中起来。这就是我已经知道的:
Java字段和隐藏vs Kotli属性和重写
(实际上,这促使我写了这篇文章):
在Java中,基类的字段由派生类中同名的字段隐藏,因此使用哪个字段取决于对包含该字段的对象的引用的类型,而不是对象本身的类型(字段不像方法那样被覆盖,因此它们不依赖于对象的运行时类型)。例如,这段代码:
class A {
public String name = "A";
p
我是Kotlin的初学者!我们能用Kotlin解释这些类之间的区别吗?
class Person(val name: String, val age: Int)
class Person(name: String, age: Int)
class Person(var name: String,var age: Int)
以及如何在Kotlin中为数据类添加getter和setter?
所以我有一个抽象的课堂作文,有两个孩子:一个是一首歌,一个是一张专辑(一组曲目)。
class Composition(val name: String, ...)
class Track(name: String): Composition(name)
class Album(name: String, val tracks: List<Track>): Composition(name)
到现在为止还好。现在,我有了增加的持续时间。它在构图上是抽象的,所以我可以在孩子们中重写它:
abstract class Composition(...){
abstract fun
我正在将Java应用程序重写为Kotlin应用程序。
除了API请求,所有的工作都很好。
要将DTO存储在数据库中,除了从API检索到的id字段外,还有cityId字段(在那里称为id )。
由于某种原因,@JsonIgnore不适用于DTO id字段。
build.gradle
// plugins
id 'org.springframework.boot' version '2.2.4.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEA
我对kotlin和构建测验应用程序是个新手。我不明白怎么把这段java代码写进Kotlin?尤其是getter和setter?另外,如何在Kotlin中创建默认构造函数和参数化构造函数? 我所做的是: class Question {
var question: String
var opt1: String
var opt2: String
var opt3: String
var answerno: Int
constructor(question: String, opt1: String, opt2: String, opt3: S
我在用Kotlin做开发。当我到达官方Android教程的片段部分时,我看到了supportFragmentManager。它可以作为Kotlin中的变量使用,而在java中,我们可以调用它的等效方法getSupportFragmentManager()。
我想知道supportFragmentManager变量是在哪里定义的,因为我看不到任何类似于该名称的变量声明,但是单击该变量将我带到fragmentActivity.java类中的以下方法。
/**
* Return the FragmentManager for interacting with fragments associate
我用Kotlin编写了以下类: class MyClass {
var color: String = ""
var action: String = ""
val owners = Array(1) {Owner()}
class Owner {
var userId: String = ""
var userName: String = ""
}
} 我正在访问它:...and: MyClass myObject = new MyClass();
my
我正在使用Kotlin和Realm来编写数据类
data class AuthToken(val register: Boolean,
val token: String,
val tokenSecret: String,
val user: AuthUser)
我必须将数据保存到db,所以我使用Realm来保存它。但正如我们所知,如果我想将类保存到Realm,AuthToken类必须扩展RealmObject。
这就是问题所在,Kotlin说数据类不能扩展类。所以我放
我正在学习Kotlin,目前使用Fedora 25 OpenJDK 8和Kotlin 1.1。
我从Kotlin网站复制了这个示例:,并更改了get操作符。
class Example {
var p: String by Delegate()
}
class Delegate {
operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
// My implementation
return property.getter.call(thisRef) as
这个例子来自我正在做的Kotlin课程:
class Car {
var speed: Int = 0
get() = field
set(value) {
field = value
}
}
如果我喜欢使用这样的主构造函数:
class Car(var speed: Int)
,在这种情况下,我要怎么写getter / setter呢?
假设我有这样的界面:
interface Things {
fun size(): Int
}
我想子类一个List并实现这个接口。
class Cars : ArrayList<String>, Things {}
我得到一个编译错误:
继承的平台声明冲突:以下声明具有相同的JVM签名(size()I):兴趣():Int被定义为
我可以通过将size合同更改为var隐式getter来避免编译错误:
interface Things {
var size: Int
}
但是,我得到了一个长而复杂的错误,它看起来像是运行时错误(IllegalStateExcept
class Sample1 {
private var test = ""
get() = field
set(value) {
field = value
}}
这是我的课。我希望将该属性保持为私有属性,并且必须通过getter和setter访问该属性。
var sample1 = Sample1()
我试图创建一个对象并访问该属性,但失败了。当我浏览文档时,我会发现一件有趣的事情:"Getters始终具有与属性相同的可见性“。
kotlin的正确方法是什么?
我正在尝试修复一个旧的kotlin项目中的问题。但问题是我不能编译代码。我尝试在Android Studio和IntelliJ中编译和运行。我也遇到了同样的错误。
以下是错误:
Error:(174, 25) Expression 'length' of type 'Int' cannot be invoked as a function. The function 'invoke()' is not found
Error:(176, 60) Unresolved reference: charAt
Error:(148, 67) Expr
我使用Intellij将Java代码转换为Kotlin。
我的Java类:
public class Test {
private String mName;
public String getName() {
return mName;
}
public void setName(String name) {
this.mName = name.trim();
}
}
转换科特林级:
class Test {
var name: String? = null
private set
我编写了一些kotlin代码,以显示jvm上的执行和js中的不同行为。我怎么才能解决这个问题?
这个等式: booleanKClass == genericKclass对于JVM是true,对于JS是false。
我将粘贴代码,然后粘贴控制台生成的输出(一个用于jvm,另一个用于js),如果您从多平台项目调用test1(),您将看到这一点。我使用的是kotlin_version =‘1.2.51’
fun test1() {
val values = PropertyDelegate()
val result = Result(values)
println("
Kotlin可以自动为主构造函数参数创建getter(这很棒),默认情况下,所有这些getter都是final (而不是open)。我有一个类(在Kotlin中): open class SongCategory(val id: Long,
val type: SongCategoryType,
val name: String? = null,
var displayName: String? = null,
我有以下数据类,它将从API检索数据:
data class Users(
@field:[Expose SerializedName("id")]
val id: Int)
我只是想知道@field:是什么意思。
通常情况下,我总是这样做:
data class Users(
@Expose
@SerializedName("id")
val id: Int)
我理解“暴露”和“serializedName”的含义。
我只问几个问题:
我对@field:[]最好的猜测是采取一组注释
这个错误是而不是在gradle版本4.10.2中发生的
行classDirectories = files(filesToCover)导致gradle抛出一个错误:
* What went wrong:
Script compilation error:
Line 80: classDirectories = files(filesToCover)
^ Val cannot be reassigned
但是,当您查看底层的JacocoReportBase类时,可以清楚地看到存在一个setter,类属性不是最终的。
pu
我试图在EditText中设置文本,但它说:
Type mismatch.
Required: Editable
Found: String
我的代码如下:
String name = "Paramjeet"
val nametxt = findViewById (R.id.nametxt) as EditText
nametxt.text = name
不要说使用setText,因为我使用的是kotlin,而不是Java。
我一直在看Kotlin的官方教程。我遇到了一个名为Backing 的主题
上面写着,
Kotlin中的类不能有字段。但是,在使用自定义访问器时,有时需要有一个支持字段。为此,Kotlin提供了一个自动支持字段,可以使用字段标识符访问该字段:
var counter = 0 // the initializer value is written directly to the backing field
set(value) {
if (value >= 0) field = value
}
我从得到了上面的信息
我的问题是,“字段”是否指向反变量?
我有这样一堂课
class Square(var width: Int, var height: Int) {
var color : String = "red"
}
正如我所理解的,Kotlin的编译器将考虑宽度、高度和颜色是类Square的属性,因此它将自动为这些属性生成setter和getter。
使用属性颜色,我想它的吸气者和策划者应该喜欢这个。
var color : String = "red"
get() = field
set(value) { field = value}
但宽度和高度属性的默认设置器和getter如何?这些属性没有初