Страницы

Поиск по вопросам

среда, 5 февраля 2020 г.

Почему код выполняется с “чужеродной” строкой?

#java #android #android_studio #ide


Есть код

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{

    static void example(){

        https://ru.stackoverflow.com/questions

        System.out.println("Hellolo!");
    }


    public static void main (String[] args) throws java.lang.Exception
    {
        example();
    }
}


Почему вроде как чужеродная строка

https://ru.stackoverflow.com/questions


внутри метода не мешает выполнению программы?

Заметил это в Android Studio. IDE выделяет только https с подсказкой 

Unused label 'https' less... (Ctrl+F1) 
Reports unused code labels.


Приложение компилируется и запускается

String example(){

    https://ru.stackoverflow.com/questions

    return "Hello!";
}


если из onCreate вызвать 

if(DEBUG) Log.i("TAG", "example() - " + example() );


На выходе

I/TAG: example() - Hello!


В следующем виде IDE уже ругается и подчеркивает всю строку

void example(){

    https://ru.stackoverflow.com/questions

}


Подсказка - label without statement

Примечание: чужеродная значит ни переменная, ни выражение ... (в моем скудном представлении)
    


Ответы

Ответ 1



Потому что, с точки зрения компилятора вы установили метку (точку безусловного перехода с синтаксисом label:) с именем https за которой следует комментарий (//). Во втором случае нет кода, куда бы ссылалась эта метка

Комментариев нет:

Отправить комментарий