我在java中有以下代码: Enum getEnumValue(Class enumClass, String value) { return Enum.valueOf((Class) enumClass, value); } 如何在Kotlin中重写? 更新 enumValueOf()函数不适用于这种情况,因为我不知道实际的types参数,我只有一个Class具有未知types的对象(kotlin中的Class )和一个名称字符串。 该类被称为枚举: Class.isEnum返回true。 使用这两个输入,上面的java代码可以获得原始types的枚举值。 这正是我所需要的,因为我对枚举的具体types不感兴趣。 但我无法弄清楚如何在kotlin中得到相同的结果。
我尝试通过书“通过示例的Android游戏编程”来学习Kotlin。 现在我无法进一步创建线程。 在Java中,一个线程首先被定义为零,后来被sleep()延迟。 由于我仍然是一个新手,我不能根据我的需要定制代码。 这就是我在Kotlin中find线索的解释。 但是我不能付诸实践。 有人可以告诉我如何使用我的例子做到这一点? 我删除了线程的代码行。 public class TDView extends SurfaceView implements Runnable { //Thread related volatile boolean playing; Thread gameThread = null; //Line 29 … private void control() { try { gameThread.sleep(17); //Line 310 } catch (InterruptedException e) { //catch things here } } public void pause() { playing = false; try […]
假设我有一堂课: class Test { func someMethod() {} init(closure:(Test)->Void) { closure(self) } } 我可以用另一个类的另一个方法调用init(1) Test { $0.someMethod() } 或者像这样(2) Test { t in t.someMethod() } 是否有任何可能的解决方案,将允许编写完全相同的东西,没有“$ 0”或“吨”? 我想得到这个代码(3) Test { someMethod() } 行为必须完全符合(1)或(2)。 可能吗? 也许不是关闭,但有一些其他的Swiftfunction? 我想要做这样的Kotlintypes安全的生成器: http : //kotlinlang.org/docs/reference/type-safe-builders.html
我是一个kotlin新手。 任何一个知道如何选择我的建立kotlin版本? 是不可能改变它? 如果是的话,应该怎么做?
在Kotlin中,我已经看到函数a.mod(n)如果a是负数,结果是负数。 这不是什么modulo要做。 我能做些什么总是积极的模数? 例如: (-2).mod(9) 返回-2 ,应该是7 。
我有一个第三方的Java库,它的接口是这样的: public interface Handler { void call(C context) throws Exception; } 我如何在Kotlin中简洁地实现它类似于这样的Java匿名类: Handler handler = new Handler { @Override public void call(MyContext context) throws Exception { System.out.println(“Hello world”); } } handler.call(myContext) // Prints “Hello world”
我从OrientDB服务器收到一些JSON,如下所示: { … “out”: …, “in”: …, … } 现在这两个字段可以是两种types之一: String和我自己的自定义对象(我们称之为一个Record )。 例如,对于一个请求我可能会收到: { … “out”: “#17:0”, “in”: { … }, … } 对于另一个我可能会得到: { … “out”: { … }, “in”: “#18:2”, … } 等等。 两者都可能是String ,都可能是Records ,一个可能是一个String ,另一个可能是一个Record ,等等。 现在,当我使用Moshi对这种JSON进行反序列化时,我有两个参数out和in来保存它们各自键的值; 然而,因为这些值不是固定的数据types,所以说起来容易做起来难。 创建多个POJO(或“POKO”,我猜是因为我正在使用Kotlin)不起作用,因为这些对象可以在其他 JSON对象内部find。 我需要一个单一的对象,这些参数可以采取一个可变的数据types。 那么我该怎么做呢? 我需要在Moshi中编写一个自定义适配器来序列化/反序列化这些值吗? 如果是这样,我将如何去写一个可以分配一个特定的数据types取决于参数的值? 或者是有某种types的Kotlin类/函数/扩展函数,我可以find/写入,可以容纳两种可能的数据types? 如果它是相关的,我也使用Retrofit 2 + RxJava 2异步地进行HTTP调用,所以如果这些库中有任何数据types或函数有助于这样的事情,那么我就是耳熟能详。 即使任何人只能用Java来回答,因为我可以自己转换代码。 […]
我正在为LG V20 / V10的信息部件工作,在第二个屏幕上运行(很容易添加一个:只需将您的类别设置为36864 / 0x9000)。 目前,我在RemoteViews布局中有一个电池视图和一个TextClock: 在我的代码中,我有这些函数,从onUpdate()调用每个小部件ID(在Kotlin中): private fun updateBattery(views: RemoteViews) { val level = mBatteryManager?.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) val charging = mBatteryManager?.isCharging mBatteryState.updateState(level as Int, charging as Boolean) views.setImageViewResource(R.id.battery_view, mBatteryState.imageResource) var color = mPrefs?.getInt(“battery_color”, Color.WHITE) var showPercent = mPrefs?.getBoolean(“show_percent”, true) if (color == null) color = Color.WHITE if (showPercent == null) showPercent = true views.setInt(R.id.battery_view, “setColorFilter”, […]
我已经在Koltin中编写了一个Vertx-web处理程序,它将任何接收到的HTTP请求重定向到HTTPS,并且使用context.request().isSSL来确定请求是否不是SSL,并且直到我把我的代码在负载平衡器后面。 如果负载均衡器使用HTTPS与我的Vertx-web服务器通信,则认为所有用户请求都是HTTPS,即使它们不是。 如果我更改负载平衡器以与HTTP上的Vertx-web进行通信,那么即使用户已经使用HTTPS,每个请求也会被无限重定向。 然后,我也看到另一个问题,即使用context.request().absoluteURI()的重定向转到私有地址,而不是用户实际与之通信的公用地址。 在Vertx-web中是否有一个处理程序,我错过了这个,或者一些惯用的方法来解决这个问题? 我应该从JavaScript做到这一点,因为它看到的是真正的用户地址,而不是尝试服务器端重定向? 我在Kotlin编码,所以这个语言的例子都很棒! 注意: 这个问题是由作者故意编写和回答的( 自我回答问题 ),所以在SO中共享有趣问题的解决方案。
我正在尝试编写一个可以从多种编程语言中使用的库,例如: CLR语言(C#,F#..) JVM语言(Java,Kotlin,Scala ..) 母语(C / C ++,Rust,Objective-C,Swift ..) 的JavaScript /打字稿 我所知道的基本方法是用C / C ++编写它,并为每种语言维护我自己的绑定,或为每种语言维护单独的库副本(如Reactive extensions does)。 无论哪种方式,这是O(n) n语言的工作。 是否有一种语言或工具可用于使用一种语言编写库,并为其他语言自动生成绑定?