static Customer GetCustomer(int id)
此方法的返回类型并不意味着您必须返回Customer
该类。
这意味着,它应该返回对 Customer 类或 Customer 子类的对象的引用。
因此,您的退货声明应如下所示:-
return new Customer(id);
而且,根据该方法,它似乎应该返回一个已经存在的Customer
对象id
。例如,如果您有List<Customer>
,那么您需要从该列表中找出Customer
具有给定 的对象id
。
现在,鉴于在您的 main 方法中,您已经创建了两个Customers
-forrest
和random
. 您需要将这些引用保存在一些持久性存储中,无论是一个List<Customer>
数据库还是某个数据库。要获得指向基于 some 的对象的引用id
,您必须从正在使用的持久性存储中获取它。
在您的情况下,由于您想基于 获取对象id
,您可以维护一个Map<Integer, Customer>
以存储您Customers
的特定id
.
static Map<Integer, Customer> map = new HashMap<Integer, Customer>();
public static void main(String[] args) {
Customer forrest = new Customer("Forrest Stallings", 1, "42 New Street, New York, NY");
Customer random = new Customer("Random Name", 2, "44 New Street, New York, NY");
map.put(1, forrest);
map.put(2, random);
}
然后在您的getCustomer
方法中,只需获取customer
作为id
参数传递的参数:-
public Customer getCustomer(int id) {
return map.get(id);
}
因此,您无需id
对任何值进行测试。它会自动获取对应Customer
的那个id
。
例如: -
getCustomer(1);
将返回引用指向的对象forrest
。