我有一些扩展函数,我想转移到成员函数中。但我不确定如何做到这一点,特别是嵌套泛型类型链。
import Y.*
abstract class File<T>
open class Y private constructor() {
open class localhost_ {
@JvmName("usr") operator fun div(a: usr.Companion) = usr<localhost_>()
@JvmName("bin") operator fun div(a: bin.Companion
我是Kotlin世界的新手,对于下面的代码片段,我有一个关于companion object的问题:
class UserRating(id: EntityID<Int>): IntEntity(id) {
companion object : IntEntityClass<UserRating>(UserRatings)
var value by UserRatings.value
var film by StarWarsFilm referencedOn UserRatings.film // use referencedOn for nor
在执行匕首-2的刀柄迁移时,得到了一个模块的错误。
错误:
FooModule.Companion is listed as a module, but it is a companion
object class.
Add @Module to the enclosing class
and reference that instead.
希尔特之前的,
@Module
abstract class FooModule {
@Binds
@FooScope
abstract fun bindsManager(impl: FooManagerImpl): FooManager
我试图为我的ADT数据类型做一个通用序列化程序,它遵循以下结构化类型
/**
* Our standard ADT representation, indexed by ID. ADT's also have a formattedString (formal name representing ADT)
*/
type ADT = {def id: Long; def formattedName:String}
/**
* This is a structured type that forces the companion objects associ
我需要访问一个具有特定特征的伙伴类--从一个用于案例类的特性。我几乎可以肯定Scala反射库能够完成这一任务,但我还没有把它拼凑在一起。
我在下面创建了测试代码,它需要?的一个部分。充满了反射的魔力。代码按原样编译和运行--由于缺少功能而发出通知。
我在StackOverflow上看到的一些相关答案来自2.10。请兼容Scala 2.12。
import scala.reflect.{ClassTag, classTag}
//for companion object
//accesses Fields of the associated case class to ensure the c
给出一个Kotlin同伴对象
class A {
companion object {
val a = 0
fun b() = 1
object C {
val d = 0
}
}
}
fun main(args: Array<String>) {
println(A.a)
println(A.b())
println(A.C.d) // doesn't compile
println(A.Companion.C.d)
}
为什么Comp
在中,要调用Java中的kotlin静态函数,可以这样做:
class C {
companion object {
@JvmStatic fun foo() {}
fun bar() {}
}
}
C.foo(); // works fine
C.bar(); // error
C.INSTANCE.bar(); // works, a call through the singleton instance
C.INSTANCE.foo(); // works too
但对我来说,没有'companion'它就不能工作,
ko
当通过伴生对象的工厂方法创建的实例比较对象相等性时,它将为false。
class Companion(s: String)
object Companion {
def apply(s: String): Companion = {
new Companion(s)
}
}
val c1 = Companion("foo")
val c2 = Companion("foo")
println(c1 == c2) // false
但是,当同样的情况由case类创建时,为什么会是真的呢?
case class Case(s: St
sealed class Color () {
sealed class Dark (): Color() {
object DarkRed : Dark()
object DarkBlue : Dark()
}
override fun toString(): String = when (this) {
is Color.Dark -> "Dark"
is Color.Dark.DarkRed -> "Dark Red"
is Color.Dark.Da
我想在kotlin中声明一个扩展函数,但是在Java classes上,当你在扩展函数中解析companion时,我知道在Kotlin中是这样做的。像这样:
class Food {
companion object {
fun foo() = Unit
}
}
fun Food.Companion.clear(){/*Clear all of objects*/}
现在,有没有什么方法可以把static函数注入到类库中呢?
正在为Kotlin玩箭头库,并在文档中发现了这个错误。我做错了什么?
Unresolved reference: company
代码是下一个代码,因此由于引用中的错误,它没有编译。
package com.app
import arrow.optics.Optional
import arrow.optics.optics
@optics
data class Street(val number: Int, val name: String) {
companion object
}
@optics
data class Address(val city: String, v
我试图获得拥有一个同伴对象的类,这样我就可以使用内联技术在同伴对象中创建记录器,但引用的是正在记录的主类,而不是同伴对象。
问题是,我找不到一个方法来获得伙伴对象的所有者,我怎么做呢?
fun Logger(c: Class<*>): Logger {
var c2 = c
val k = c.kotlin
if (k.isCompanion) {
c2 = k.<opposite of what companionObject does>.java
}
// Calls a factory, reuse the
给定一个接受类型的代码,接受它已知的直接子类,过滤那些是case类的类,然后取那个case类的伙伴:
def firstSubclassWithCompanion[T: TypeTag]: String = {
val superclass = implicitly[TypeTag[T]].tpe.typeSymbol.asClass
val caseClass = superclass.knownDirectSubclasses.map(_.asClass).filter(_.isCaseClass).head
s"case class $caseClass has co
我正在阅读Kotlin in Action一书,并试图更好地理解Companion对象,除了从接口/抽象类添加方法实现之外,Companion Ojbects还有其他用途吗?
我遇到了一种实例化对象的方法,该方法只有在类是抽象的情况下才有效:
fun main(args: Array<String>) {
Fruit.showColor()
}
class Fruit(val name: String) {
companion object : Apple()
}
abstract class Apple {
fun showColor(){
我试图创建一个序列化程序来聚合一些有关用户库存的数据,但是它引发了以下错误:
Exception Value:
int() argument must be a string, a bytes-like object or a number, not 'dict'
我不知道这里错过了几点。我试图对给定用户的标准字段和箔字段进行汇总。
Model.py
class inventory_tokens(models.Model):
...
standard = models.IntegerField(default=0)
foil
我正在尝试访问fragment中的数据库处理程序,但是它给我抛出了这个错误does not have companion object error。我尝试了数据库处理程序查询,它运行良好。任何帮助都是非常感谢的。
语言使用
Kotlin
码
class OneFragment : Fragment() {
companion object
{
//Error in the below context
var db=TestDatabaseHandler(Context)
}
override fun onCreateView(inflater: LayoutInf
假设您使用类型参数编写方法。假设类型参数可以是(但不必是)枚举类型。是否有方法从方法体内部推断枚举类型的伴生对象。
示例:
enum MyEnum
case A, B, C
def cleverMethod[T]: CoolAnswer =
// To return a cool answer, I'd love to analyze the type T and do something like:
// If it is an enum-type then find the companion object and return it wrapped into