首页 > 解决方案 > 与 Java 内部私有类和 toString() 混淆

问题描述

我有一个项目,我必须使用内部类来声明食物类型(创建为“项目”对象);例如,煎饼:

private class Pancake {          
    Item pan = new Item(5.50);                  
    public String toString() {   
                    
    }     
}      

如上所示,给我的分配说每个私有内部类必须覆盖 toString 以返回对象的名称和价格。但是,测试用例读取了 Item 类(一个不同的公共类)中的 toString 方法返回的内容,我目前将其编码为:

@Override public String toString() {          
    return "" + " ($" + this.price + ")";     
} 

我不知道如何通过这个 toString 方法传递食物类型的名称(即 Pancake)。项目对象是使用为它们分配价格的构造函数创建的,这是允许的。所以我不能使用 this.name 或类似的东西来访问食物的名称。如何给这个 toString() 方法提供食物的名称(私有内部类,完全在不同的类中)?不允许在私有类中实现构造函数。我试过使用 this.getClass() 但所做的只是返回一个类类型的项目,而不是特定的食物类。任何帮助,将不胜感激。

标签: javatostringinner-classesgetter

解决方案


推荐阅读