我在用Kotlin做开发。当我到达官方Android教程的片段部分时,我看到了supportFragmentManager。它可以作为Kotlin中的变量使用,而在java中,我们可以调用它的等效方法getSupportFragmentManager()。
我想知道supportFragmentManager变量是在哪里定义的,因为我看不到任何类似于该名称的变量声明,但是单击该变量将我带到fragmentActivity.java类中的以下方法。
/**
* Return the FragmentManager for interacting with fragments associate
我正在学习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
我使用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中实现下拉向导示例应用程序,并且有一个实现DateRequiredFeature的问题。Java代码如下:
@Provider
public class DateRequiredFeature implements DynamicFeature {
@Override
public void configure(ResourceInfo resourceInfo, FeatureContext context) {
if (resourceInfo.getResourceMethod().getAnnot
假设我有这样的界面:
interface Things {
fun size(): Int
}
我想子类一个List并实现这个接口。
class Cars : ArrayList<String>, Things {}
我得到一个编译错误:
继承的平台声明冲突:以下声明具有相同的JVM签名(size()I):兴趣():Int被定义为
我可以通过将size合同更改为var隐式getter来避免编译错误:
interface Things {
var size: Int
}
但是,我得到了一个长而复杂的错误,它看起来像是运行时错误(IllegalStateExcept
我知道我可以这样做: data class Foo(val bar: String)
val foo = Foo("bar")
foo::class.java.getDeclaredField("bar").let { it.trySetAccessible(); it.get(foo) } 为此,我需要使用class.java.getDeclaredField("bar")和其他Java语言,如trySetAccessible()和get。 有没有可能用一种更具Kotlin风格的方式来做这件事?
我是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?
我试图在我的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
考虑以下Java类:
public final class Example {
private int value;
public int getExampleValue {
return value;
}
public void setExampleValue(int value) {
this.value = value;
}
}
Kotlin将这些get/set访问器方法合成为属性:
val example = Example()
example.exampleValue = 0 // setExampleVa
考虑一下这个Kotlin代码:
var parent: T? = null
get() = if (isParent) this as T else field
set(value) { field = if (value == null) null else value.parent }
val isParent: Boolean
get() = parent == null
var description = ""
get() = if (isParent) field else parent!!.description
set(
我对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
我正在将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
class Sample1 {
private var test = ""
get() = field
set(value) {
field = value
}}
这是我的课。我希望将该属性保持为私有属性,并且必须通过getter和setter访问该属性。
var sample1 = Sample1()
我试图创建一个对象并访问该属性,但失败了。当我浏览文档时,我会发现一件有趣的事情:"Getters始终具有与属性相同的可见性“。
kotlin的正确方法是什么?
class JacksonError(
val x: String,
val isSomething: Boolean
)
因错误而失败
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "something" (class ch.cypherk.blah.JacksonError), not marked as ignorable (2 known properties: "x", "isSomething"]
我用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了。我目前的背景是Java。我发现Kotlin中的类属性与Java中的类字段非常不同,尽管它们看起来很相似。在他的问题中,我想把这两者之间的所有技术分歧集中起来。这就是我已经知道的:
Java字段和隐藏vs Kotli属性和重写
(实际上,这促使我写了这篇文章):
在Java中,基类的字段由派生类中同名的字段隐藏,因此使用哪个字段取决于对包含该字段的对象的引用的类型,而不是对象本身的类型(字段不像方法那样被覆盖,因此它们不依赖于对象的运行时类型)。例如,这段代码:
class A {
public String name = "A";
p
我试图在EditText中设置文本,但它说:
Type mismatch.
Required: Editable
Found: String
我的代码如下:
String name = "Paramjeet"
val nametxt = findViewById (R.id.nametxt) as EditText
nametxt.text = name
不要说使用setText,因为我使用的是kotlin,而不是Java。
所以我有一个抽象的课堂作文,有两个孩子:一个是一首歌,一个是一张专辑(一组曲目)。
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
Kotlin可以自动为主构造函数参数创建getter(这很棒),默认情况下,所有这些getter都是final (而不是open)。我有一个类(在Kotlin中): open class SongCategory(val id: Long,
val type: SongCategoryType,
val name: String? = null,
var displayName: String? = null,
我有这样一堂课
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如何?这些属性没有初
这里是Kotlin的初学者。
我试图通过程序中的反射来创建和填充对象。我无法在纯kotlin中找到相应的功能,所以我的解决方案类似于下面的代码,这些代码工作得很好,但需要使用脏引用(如java.lang.String::class.java和intelliJ ),这是可以理解的。有没有更简单的方法让我错过做这件事?
val jclass = myObject::class.java
val setters = jclass.declaredMethods.filter { it.name.startsWith("set") }
for (s in setters) {
我一直在看Kotlin的官方教程。我遇到了一个名为Backing 的主题
上面写着,
Kotlin中的类不能有字段。但是,在使用自定义访问器时,有时需要有一个支持字段。为此,Kotlin提供了一个自动支持字段,可以使用字段标识符访问该字段:
var counter = 0 // the initializer value is written directly to the backing field
set(value) {
if (value >= 0) field = value
}
我从得到了上面的信息
我的问题是,“字段”是否指向反变量?
我有一个Firestore集合,它包含没有公共键或值的不同数据对象。在Kotlin中,这是由以下内容所代表的:
sealed class Task()
data class WorkTask(val id: String): Task()
data class ReductionTask(val time: Date): Task()
我想以如下方式反序列化来自Firestore集合的数据:
val tasks = result.toObjects(Task::class.java)
val workTasks = result.filterInstance(WorkTask::class.j
我试图使用列表获取数据,但使用迭代器。它在向我展示这个物体。我如何从它中获取数据?
import java.util.*;
class Getter_Setter
{
int id;
String name;
public List<Getter_Setter> buckets;
public String getName()
{
return name;
}
public int getId()
{
在Java中,您可以声明一个私有的最终成员变量,然后从构造函数中初始化它,这是非常有用的,也是非常常见的事情:
class MyClass {
private final int widgetCount;
public MyClass(int widgetCount) {
this.widgetCount = widgetCount;
}
在Kotlin中,如何使用传递给构造函数的值初始化最终成员变量(val类型)?