2014-02-18 2 views
0

Это похоже на объектно-ориентированную проблему, но я исходил из фона Pascal/Delphi, и я не могу найти аналогичный метод для получения того же результата в Java.Как получить доступ к методу typecasted object напрямую?

В Pascal/Delphi, я могу изменить что-то вроде этого (это не совсем правильно, но только, чтобы дать вам иллюстрацию):

var a: TButton; b: string; 
begin 
    a := TButton(getObject(request)); 
    b := a.caption; 
end; 

в этом:

var b: string; 
begin 
    b := TButton(getObject(request)).caption; 
end; 

Но как для достижения того же решения в Java? как изменить:

Button a; 
String b; 
a = (Button) getObject(request); 
b = a.caption; 

в

String b; 
b = (Button) getObject(request).caption; 

или что-то подобное? Дело в том, что я хочу исключить необходимость объявления временной переменной для хранения объекта, если то, что я хочу, - это просто взять другое значение (или объект) внутри этого объекта. Но проблема в том, что объект должен быть типизирован первым, потому что все, что я получаю, - это просто общий объект из функции getObject(). Спасибо за вашу помощь.

+2

'б = (String) ((Button) GetObject (запрос) .Caption)' – bjhaid

+0

ой ладно .. спасибо! –

+0

Я бы опубликовал его как ответ, чтобы вы его приняли – bjhaid

ответ

0

Я хотел бы сделать, как показано ниже:

b = (String)((Button) getObject(request).caption) 
+0

@DJClayworth в зависимости от контекста использования, вам может понадобиться String Cast для предотвращения шума от компилятора, например, случай, когда метод 'getObject' объекта вводится через некоторую структуру DI – bjhaid

Смежные вопросы