У меня есть много методов (3 для этого примера), которые выполняют одну и ту же процедуру. Я бы сделал для них общий метод, чтобы он выглядел чистым, но у меня проблемы с кастингом.
Мои 3 метода:
private void GetBeds(JSONObject deepSearchResults, Property p) {
Object beds = Find_Key(deepSearchResults, "bedrooms");
if (beds != null)
p.beds = (Long) beds;
}
private void GetBaths(JSONObject deepSearchResults, Property p) {
Object baths = Find_Key(deepSearchResults, "bathrooms");
if (baths != null)
p.baths = (double) baths;
}
private void GetRegion(JSONObject deepSearchResults, Property p) {
Object region = Find_Key(deepSearchResults, "name");
if (region != null)
p.region = (String) region;
}
Я хотел бы вызвать один метод и очистить много повторяющегося кода. Это будет выглядеть примерно так:
private void FillData(JSONObject deepSearchResults, Object o, String searchTerm) {
Object response = Find_Key(deepSearchResults, searchTerm);
if (response != null)
o = (o.getClass()) response; //error "Not a statement"
}
и я бы назвал FillData(...)
как:
FillData(deepSearchResults,(Object)p.baths,"bathrooms");
Но я не думаю, что правильно использую getClass()
. Как мне программно привести response
к типу o
во время выполнения?