Question

A colleague came across some code that looked like this and couldn't understand how it could ever compile:

class FooClass {
  public static void bar(String arg) {
     System.out.println("arg = " + arg);
     http://www.google.com
     System.out.println("Done!");
  }
}

Basically, there was a random URL pasted in the middle of a method but javac didn't care.

We worked out so I'll post the answer if no-one else finds out but I thought it was interesting enough to post.

Was it helpful?

Solution

"http:" is interpreted as a label. What follows is an end-of-line comment.

OTHER TIPS

You have a label

http:

followed by a comment

//www.google.com

Easy. The highlighting on this site shows why.

http: is a label, as in break http;

//www.google.com is a comment.

http: is the label. // starts the comment.

"http:" is a label, and the part after the "//" is, of course, a comment

Another example with two http://

public class Main {
    {
        http://en.wikipedia.org/wiki/Hello_world_program
        System.out.print("Hello ");
    } {
        http://java.sun.com/docs/books/tutorial/getStarted/application/index.html
        System.out.println("World!");
    }

    public static void main(String... args) {
        new Main();
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top