Android-дегі @ аннотациясын шығарыңыз

Мен Java және Android бағдарламаларын жаңарттым. Мәселе мынада, бірнеше кітаптар, форумдар мен веб-сайттар бойынша серфинг жасағаннан кейін @override аннотациясының не екенін түсінбеймін. Мен түсінемін, бұл кезде әдіс басталды. бірақ Android-ге не үшін қажет. Мен java үшін бастапқы кодта сирек көремін, бірақ Android-дегі барлық уақыт.

10

8 жауаптар

Сіз оны ескі Java бастапқы кодында сирек көре аласыз, себебі ол өте жақын жаңалық болып табылады, ал Android кодын жаңадан анықтайды.

Бұл қауіпсіздік желісі, шын мәнінде, компиляторға нәрсені тексеру үшін тырысыңыз дейді - сондықтан әдісі ештеңені алдын ала анықтаса, мысалы, сәтсіз болсын. аты-жөні жазылған. Бұл переопределиться сияқты C# -де әдіс декларациясының бөлігі болып табылатын кілт сөз. Бұл қателіктердің алдын-алуға көмектесетін және болашақ оқырмандарға өзіңіздің кодыңызды анық етіп жасайтын әрекеттеріңіз туралы анық айтуға көмектеседі.

21
қосылды
Рақмет сізге. Мен мұнда әрбір жауаптан бір нәрсе алдық. Мен және жаңа стек, сондықтан әр жауап алғыс айтқым келмесе, ренжітуге болмайды. Мен java ақпаратына тікелей барып, дерексіз сыныптар мен полиморфизмді қарап шықтым. Менің түсінігімді қайталау үшін, onCreate() шақырғанда, ол ОЖ пайдаланатын негізгі әрекетті жасаудың негізгі компоненттері ғана бар. @overide ойнатылып жатқанда, негізінен, сіздің бағдарламаңыздағы ниетті орындау үшін onCreate() бағдарламасына кіргенде. Менің ойымша, бұл қиын болуы керек деп ойладым, бірақ кем дегенде оны жасадым!
қосылды автор JBlaza, көзі

@Override аннотациясының негізін түсінсеңіз, бұл екі мақсатты толтыратын метадеректер туралы ақпарат:

  • Интерфейс немесе кеңейтілген сыныпта анықталғандықтан, ол әдісінің ауытқу әдісін сипаттаңыз

  • Сіз қандай әдісті жергілікті түрде жариялауды дұрыс деп анықтайтыныңызға және солардың ішінде маңызды болып табылатындығын анықтауға көмектеседі, өйткені Android-де фрагменттің, Қызметтің, Қызметтердің, BroadcastReceiver және т.б. сияқты кеңейтілуі мүмкін, бұл сіздің кодты тазартатын жақсы тәжірибе.

Сіз оны Java-стилінде көрмейтін мәселеге қатысты болсаңыз да, ол тек қана жаңа функция (жаңадан емес, 2005 жылдан бастап) болғандықтан ғана емес, сонымен қатар Java-де кем дегенде Swing-те емес әдісті немесе SWT, көбінесе оларды TableModel-да немесе кеңейтілген HttpServlet кластарындағы Servlet кезде табасыз

7
қосылды

because you override a lot of methods , example ;when you create your Activity ( which extends Activity ) you need to override the method onCreate( Bundle savedInstanceState) to initialize your Activity , and so on , every time you override a method from a mother Class , eclipse add the annotation @override

2
қосылды

@Override means that you want to re-define function from superclass in child class. Read more about abstract methods, classes, polymorphism.

2
қосылды

Мен Android-бағдарламалау туралы ештеңе білмеймін, бірақ @ Override-аннотация әдісі supeclass әдісін (немесе Java 1.6 интерфейсінің әдісін іске асырады) көрсетеді. Аннотацияның таза құжаттық мағынасынан басқа кем дегенде Eclipse ақ сізге ескертетін кезде (немесе кейбір параметрлері бойынша қателесуді ескертеді), егер бұл әдіс қандай да бір сценарий әдісін шынымен жоққа шығарса, - хунтинг). Мүмкін әдепкі бойынша Android-компиляторы барлық түпнұсқалық әдістерді @Override-ге түсініктеме беруді талап етеді.

1
қосылды

@override means you are borrowing methods from available class and are not defined by the programmer.

1
қосылды
Қабылданған жауапқа қараңызшы
қосылды автор raam86, көзі

Ол java және android үшін қажет емес. Сіз оны Android бағдарламаларында жиі көресіз, себебі жаңа қызмет, әдіс және т.б. жасау кезінде тұтылу автоматты түрде қосылады. @Override аңғартпасын жойсаңыз, ештеңе қосылмайды.

0
қосылды

@overide c ++ жүйесінде виртуалды әдіс сияқты, Android бағдарламасында Oncreate әдісі wxWidget виртуалды Bool Oninit() сияқты көп, бұл әдіс сіздің GUI құрастыру үшін android (Oncreate) арқылы пайдаланылады, сондықтан GUI бағдарламасы кімнің бағдарламалауынан ерекшеленеді кодты Oncreate өзгерту де, сондықтан оны @overide керек. Біз кітапхана пайдаланатын және теңшегіміз келетін кез-келген әдісті басқарамыз. Onin() сияқты Oninit() - біз де теңшеуді қалайтын әдіс.

0
қосылды