2015-02-12 3 views
2

достаточно новое для Java и обучения Android и наткнулся на этот ответ на вопрос -Метод объяснения

Я всегда определить метод, который делает кастинг для меня в моей базовой деятельности:

@SuppressWarnings("unchecked") 
public <T extends View> T $(int id) { 
    return (T) findViewById(id); 
} 

Это означает, вместо:

Button btn = (Button)findViewById(R.id.btn); 

Вы можете сделать:

Button btn = $(R.id.btn) 

Может кто-нибудь объяснить мне метод? Особенно использование символа $.

ответ

0

Это generic method. И он использует вывод типа. Вы можете прочитать об этом here, в частности Target Types section.

Button btn = $(R.id.btn) 

Программа ожидает Button объекта из метода, поэтому компилятор «знает», что вернуть и что использовать в операции приведения.

И да, $ - это просто название метода. Но я думаю, что более значимое имя будет лучше.

1

Это не ядро ​​Java.

Однако $ является юридическим имя метода в Java, так что вы можете определить метод $

private static Button $(int resourceIdOfAButton) { 
    (Button) findViewById(resourceIdOfAButton);   
} 

Я никогда не видел это раньше, и утверждают, что это лучше придерживаться соглашения об именовании общего Java. Как в: выберите имя метода, которое дает читателю представление о том, что он делает.

Примечание стороны:

Может ли это возможно быть выходом запутанного кода?

+0

Может быть, это из jQuery? :) –

+0

@SergeyGlotov, к счастью, jQuery - это JS, а не Java – engineercoding

+0

@codequestioneer, следовательно, смайлик ... –

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