我有接口(interface)Cat
由类 LolCat
实现和FatCat
。我的程序需要记住 Cat
是哪种类型用户想要与下一个融为一体。我无法实例化正确的 Cat
然而,所以我需要记住这个类。我该怎么做?
我尝试过:
Class nextCatClass = FatCat.class;
但现在我不知道如何使用变量实例化它。 new nextCatClass()
不是有效的语法。我也尝试过
Class<Cat> nextCatClass = FatCat.class;
但现在我收到“不兼容类型”错误。
<小时/>冒着惹恼 Java 用户的风险,以下是我在 Python 中要做的事情:
next_cat_class = FatCat
...
instance = next_cat_class()
最佳答案
您可以使用 lambda Suppliers :
public static void main(String args[]) {
Supplier<Cat> lolCatSupplier = LolCat::new;
Supplier<Cat> fatCatSupplier = FatCat::new;
Cat lolCat = lolCatSupplier.get();
Cat fatCat = fatCatSupplier.get();
System.out.println(lolCat.getClass());
System.out.println(fatCat.getClass());
}
关于Java:创建变量类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58720975/