我在kotlin SmsHandler有一个类,使用一个方法determineFiltersPass调用另一个类SmsSendingFilters : class SmsHandler(val filterPredicates: SmsSendingFilters) { fun determineFiltersPass(sms: SmsDto): Boolean = with(sms.filters) { var pass = true for (filter in FiltersDto::class.memberProperties) pass = when (FilterType.valueOf(filter.name.toUpperCase())) { UNIQUE -> if (filter.get(sms.filters) != null) { val unique = filter.get(sms.filters) as Boolean pass && if (unique) filterPredicates.isUnique().test(sms) else true } else pass && true RECENT -> […]
我试图做一个通知,经过一段时间后触发。 为了达到这个目的,我有了这个从BroadCast接收器inheritance的AlarmReceiver类,它可以运行在大约API 23的设备上。它不能在我的模拟器上运行API 27.任何线索我做错了什么? class AlarmReceiver : BroadcastReceiver() { companion object { val PRIMARY_CHANNEL = “dj” } override fun onReceive(context: Context, intent: Intent) { val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager val notificationIntent = Intent(context, NotificationActivity::class.java) val stackBuilder = TaskStackBuilder.create(context) stackBuilder.addParentStack(NotificationActivity::class.java) stackBuilder.addNextIntent(notificationIntent) val pendingIntent = stackBuilder.getPendingIntent(100, PendingIntent.FLAG_UPDATE_CURRENT) if (android.os.Build.VERSION_CODES.O <= android.os.Build.VERSION.SDK_INT){ //I create the notification channel […]
以下代码段中使用的反引号是什么? 为什么添加他们的fun is(amount:Int ):Boolean { … } ? verifier.`is`(amount)
这是我的数据绑定到recyclerview的代码: val linearLayoutManager = LinearLayoutManager(this) linearLayoutManager.orientation = LinearLayoutManager.VERTICAL dashBoardDataBinding?.recyclerviewDrawerList?.setLayoutManager(linearLayoutManager) val adapter = DifferentRowAdapter(it,this) dashBoardDataBinding?.recyclerviewDrawerList?.setAdapter(adapter) 这是我的适配器: class DifferentRowAdapter(var mList: List, val listner: DashboardActivity) : RecyclerView.Adapter() { var mClickListener: OnMeetingClickListner? = null override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder? { val view: View when (viewType) { DaywiseEvents.CALENDAR_TYPE -> { view = LayoutInflater.from(parent.context).inflate(R.layout.item_city, parent, false) return DayViewHolder(view) } […]
我在一个基于Kotlin的项目中工作,它迫使我处理任何可能为null的属性。 在不受欢迎的情况下找出可能的空位是很好的; 但是我看到这么多了?. s和.!! s为数据库生成的属性,例如ID。 也许我在滥用这些运营商? 是否有任何约定标记属性不可空,但仍然有数据库生成值在这里? 如果我查找一个对象假设DB生成的值不再为空是安全的。 虚拟机可以被知道吗? 也许通过框架或语言提供的一些注释?
我正在使用Kotlin进行测试,并且正在编写一个小型库,以供测试App项目导入和使用。 在图书馆项目中,我将我的类标记为internal类,因为我不希望它们对于App项目是可见的,但是我希望为该类库提供一个入口点,为此我使用如图所示的Kotlin object下面 LIBRARY object Library { fun getComponent() = AwesomeComponent() } internal class AwesomeComponent() { // some implementation } TEST APP class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val component = Library.getComponent() } } 问题是这不能编译,因为Library object的函数返回一个internaltypes,因此也需要标记为internal,但是这样做会隐藏TestApp的函数。 另一个选择是根本没有internal修饰符,所以TestApp可以看到Library方法,但是它也可以看到Library项目中的类 在这里我忽略了一个简单的解决方案,还是需要重新规划图书馆项目的包装和结构? (不知道如何做到这一点)
当启用了proguard时,我一直面对房间稳定版本的崩溃 FATAL EXCEPTION: main Process: .debug, PID: 27841 java.lang.RuntimeException: Unable to create application .DebugBaseApplication: java.lang.RuntimeException: cannot find implementation for .database.c. c_Impl does not exist at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5015) at android.app.ActivityThread.-wrap1(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1573) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5811) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:681) Caused by: java.lang.RuntimeException: cannot find implementation for .database.c. c_Impl does not exist […]
我尝试从Corda Server迁移到Spring Boot.I在Kotlin中提到了Joel的项目(Corda官方),但在尝试使用rpcOps时却得到了这个exception。 RPCClientProxyHandler.artemisMessageHandler – RPC reply arrived to unknown RPC ID RpcRequestId(toLong=2111196934580277300), this indicates an internal RPC error. [ERROR] 2018-02-02T07:54:05,227 [Thread-0 (ActiveMQ-client-global-threads)] client – AMQ214000: Failed to call onMessage com.esotericsoftware.kryo.KryoException: java.lang.IllegalArgumentException: Privacy salt should be 32 bytes. Serialization trace: legalIdentitiesAndCerts (net.corda.core.node.NodeInfo) value (net.corda.core.utilities.Try$Success) at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:144) ~[kryo-4.0.0.jar:?] at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.read(CompatibleFieldSerializer.java:147) ~[kryo-4.0.0.jar:?] at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:813) ~[kryo-4.0.0.jar:?] at com.esotericsoftware.kryo.serializers.CollectionSerializer.read(CollectionSerializer.java:134) […]
目前,我试图测试正确的数据是否显示为我的espresso UI测试的一部分,为此我有一个Recycler视图,在下面我有一堆线性布局,每个线性布局有一些文本视图,每个都有一个文本。 我正在寻找的是如何使用espresso函数将全部10个文本视图和线性布局的整个文本转换为字符串。 我正在使用kotlin作为我的编程语言。
我有以下代码从Chronicle队列中读取(它是用Kotlin编写的,但没关系): val queue = ChronicleQueueBuilder.single(path).build() val tailer = queue.createTailer() tailer.toEnd() // // This code is wrong // val lastIndex = tailer.index() // // val shift = lastIndex – 10 // if (shift > 0) { // tailer.moveToIndex(lastIndex) // } while (true) { val text = await(tailer) if (prefix == null) { println(text) } else { […]