小编suc*_*bus的帖子

Java通用字段声明

在没有泛型类型的类中,我想声明一个类似于这些的相当复杂的泛型字段:

public class Client {
    private Map<Class<T extends Serializable>, List<Consumer<S extends T>>> classToConsumerTry1;

    private <T extends Serializable, S extends T> Map<Class<T>, List<Consumer<S>>> classToConsumerTry2;
}
Run Code Online (Sandbox Code Playgroud)

promblem是java编译器不会让我:)

所以我的问题是如何在不向我的类Client添加类型的情况下正确引入T和S.

我的目标是强制Class成为您选择的类的子类型SerializableConsumer子类型Class.

java generics types field

11
推荐指数
2
解决办法
2万
查看次数

从kotlin中的顶级函数获取类引用

我写了一个简短的程序,它不需要任何类,而只需要顶级函数.

从你编写的java代码中找到jar的位置

MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()
Run Code Online (Sandbox Code Playgroud)

但由于我没有在我的kotlin代码中声明任何类,我不知道如何获得类引用.

我目前的实施是这样的

class Ref
val jarPath = Ref::class.java.protectionDomain.codeSource.location.toURI().path
Run Code Online (Sandbox Code Playgroud)

这显然是非常糟糕的代码.

所以我的问题是,如何在不声明任何不必要的类的情况下在kotlin中获取类引用.任何提示赞赏:)

class kotlin

9
推荐指数
1
解决办法
1122
查看次数

标签 统计

class ×1

field ×1

generics ×1

java ×1

kotlin ×1

types ×1