Java:创建变量类的实例

Java:创建变量类的实例,java,Java,我有接口Cat,它是由类LolCat和FatCat实现的。我的程序需要记住用户希望与next融为一体的Cat类型。我还不能实例化正确的Cat,所以我需要记住这个类。我该怎么做 我试过: Class-nextcaclass=FatCat.Class; 但现在我不知道如何使用变量来实例化它new nextcaclass()不是有效的语法。我也试过了 Class-nextcaclass=FatCat.Class; 但现在我得到了一个“不兼容类型”错误 冒着激怒Java用户的风险,我将在Pyth

我有接口
Cat
,它是由类
LolCat
FatCat
实现的。我的程序需要记住用户希望与next融为一体的
Cat
类型。我还不能实例化正确的
Cat
,所以我需要记住这个类。我该怎么做


我试过:

Class-nextcaclass=FatCat.Class;
但现在我不知道如何使用变量来实例化它
new nextcaclass()
不是有效的语法。我也试过了

Class-nextcaclass=FatCat.Class;
但现在我得到了一个“不兼容类型”错误


冒着激怒Java用户的风险,我将在Python中做以下几点:

next_cat_class=FatCat
...
实例=下一个类别()
您可以使用lambda:

publicstaticvoidmain(字符串参数[]){
供应商lolCatSupplier=LolCat::新建;
供应商FatCat供应商=FatCat::新建;
Cat-lolCat=lolCatSupplier.get();
Cat fatCat=fatCatSupplier.get();
System.out.println(lolCat.getClass());
System.out.println(fatCat.getClass());
}

这是可能的,但很混乱。或者,您可以只在列表中存储字符串
“FatCat”
“LolCat”
,然后执行
if(catType==“FatCat”){return new FatCat();}或者{return new LolCat();}
?(当然,您可能希望使用枚举类型等,但只是使用这个原则?)关于
classnextcaclass=FatCat.Class阅读:@Tom我不确定如何处理“可能的重复”。从技术上讲,它可以回答我的问题,但我发现这个问题的公认答案更好(更优雅的解决方案,至少在我的情况下)。建议?当你接受副本时,你的问题不会有什么不好的地方。然后,它就像一个标志杆,指向另一个重复的问题。但你的问题仍然可以包含这个答案。但你仍然可以自由地不同意复制品。但请注意,其他拥有至少3000个信誉点的用户仍然可以投票来结束您的问题。这很有魅力,但现在我需要了解这些是什么:数据它们基本上是匿名的、单方法接口实现——用简短的语法。简洁的解决方案,但您也可以简单地将创意逻辑封装在工厂中。这种创建模式根据您的条件(类类型、简单字符串或更好的枚举值)返回一个类实例,当您需要它时,不需要在方法的中间写入创建逻辑。更容易理解,如果你对lambda不太熟悉。。。