我正在开发一个包含一些视图的android库。这些视图自然会发出事件。
我有一个名为的接口(仅出于此问题的目的)Listener。如果我用Java编写该库,则内容将如下所示:
public interface Listener {
void onEvent();
}
Run Code Online (Sandbox Code Playgroud)
public class SomeView extends FrameLayout {
// Some more functions and implementation details
public void setListener(Listener l) { ... }
}
Run Code Online (Sandbox Code Playgroud)
在Kotlin活动中使用此视图时,可以这样使用setListener:
someViewInstance.setListener {
// implementation
}
Run Code Online (Sandbox Code Playgroud)
我想用Kotlin写我的库,但是它也可能用在Java代码中,所以我想像常规视图(如上图)一样为侦听器提供和接口,但是可以选择Kotlin代码使用该函数实施:
interface Listener {
fun onEvent()
}
Run Code Online (Sandbox Code Playgroud)
当我尝试setListener在Kotlin测试活动中像上面那样使用时,出现编译错误,指出该函数需要类型Listener但得到了() -> Unit。
有没有一种方法可以在Kotlin中启用这种实现而不必为此创建新功能?
我考虑过只接收一个函数,() -> Unit但是在Java代码(Function1等等)中看起来很奇怪。
谢谢!
我想使用我使用密钥工具创建的一对RSA密钥创建一个文件并使用以下命令:
keytool -genkeypair -alias key -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 365 -keystore keystore.jks
我想初始化我的Signature对象,所以我尝试了这个:
PrivateKey privateKey = (PrivateKey) keyStore.getKey(PRIVATE_KEY_ALIAS,privateKeyPassword);
Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM);
signature.initSign(privateKey);
Run Code Online (Sandbox Code Playgroud)
但我得到了这个例外:
No installed provider supports this key: sun.security.rsa.RSAPrivateCrtKeyImpl
感谢任何帮助!
有没有办法告诉Prolog列表中的元素可以是任何值?我尝试使用_但它没有用.我正在尝试比较两个零和一个列表,但在某些地方我并不关心这个值,例如:我想[1,1,1] == [1,1,_]返回true哪个_元素我不关心它的价值