Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #13738
| Path | csiph.com!usenet.pasdenom.info!news.albasani.net!.POSTED!not-for-mail |
|---|---|
| From | Lew <noone@lewscanon.com> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: "static context" |
| Date | Sat, 21 Apr 2012 04:15:09 -0700 |
| Organization | albasani.net |
| Lines | 46 |
| Message-ID | <jmu4rs$9ts$1@news.albasani.net> (permalink) |
| References | <terminology-20120420003700@ram.dialup.fu-berlin.de> <580829.126.1334881065985.JavaMail.geo-discussion-forums@pbcgs4> <jmqjhq$b7b$1@dont-email.me> <verbs-sentences-20120420062533@ram.dialup.fu-berlin.de> <static-context-20120421062441@ram.dialup.fu-berlin.de> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=UTF-8; format=flowed |
| Content-Transfer-Encoding | 8bit |
| X-Trace | news.albasani.net k1WYbLgBaYQC8efpdHLRJyJyQL0cR7bQR5qJ4FdYp3VgOW6KhzGZUBHQFM+VXR5ktTOQdB4sWyIyised22+xYgdBtA/RARS/d7FHmjFyE2uJTmDp7P2RkJRu00cgcMrM |
| NNTP-Posting-Date | Sat, 21 Apr 2012 11:15:08 +0000 (UTC) |
| Injection-Info | news.albasani.net; logging-data="vj95SkQh/HlaMs6XYbflJi3gIcZXPjZSztczOw6t2EMOBlf7iF/rQUeh1yZmQfGohoSaWFIt8lyu2pGstVgjXj+3p88+I6EGWMcCAEx+idgLDN5iGCIR/nZdV7q/vstR"; mail-complaints-to="abuse@albasani.net" |
| User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120329 Thunderbird/11.0.1 |
| In-Reply-To | <static-context-20120421062441@ram.dialup.fu-berlin.de> |
| Cancel-Lock | sha1:CD4XuVcsGUWF7+AJniWQfQaBO2o= |
| Xref | csiph.com comp.lang.java.programmer:13738 |
Show key headers only | View raw
On 04/20/2012 09:27 PM, Stefan Ram wrote:
> ram@zedat.fu-berlin.de (Stefan Ram) writes:
>>>>> java.lang.Thread . dumpStack() java.lang.System.out . print( 2 )
>> A »type name« is a special kind of context, it is a static context.
>
> JLS 7 defines »static context« in 8.1.3, but the compiler
> uses another meaning of »static context«.
>
> For example, the call »dumpStack()« in
>
> class A { void m(){ java.lang.Thread.dumpStack(); }}
>
> is /not/ in a static context according to JLS 7 8.1.3,
Incorrect. The statement 'Thread.dumpStack();' is not in a static context. The
simple method name 'dumpStack()' is.
I see in
<http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.1.3>
that is says,
"A statement or expression occurs in a static context if and only if the
innermost method, constructor, instance initializer, static initializer, field
initializer, or explicit constructor invocation statement enclosing the
statement or expression is a static method, a static initializer, the variable
initializer of a static variable, or an explicit constructor invocation
statement (§8.8.7)."
There are two contexts operating here. 'dumpStack()' occurs in a static
context established by the symbol 'Thread' and the dot. The entire expression,
or statement, 'Thread.dumpStack();' [*] occurs in a non-static context
established by the opening curly brace of the instance method definition.
> but /is/ according to javac.
>
> One reason for this possibly is that JLS 1 did not yet
> define »static context«, so the wording of the compiler
> message might predate the first definition of »static
> context« in the JLS.
[*] Why the heck do you insist on calling out 'java.lang'? It's highly
unconventional and not at all idiomatic for Java.
--
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Find similar | Unroll thread
Re: terminology Lew <lewbloch@gmail.com> - 2012-04-19 17:17 -0700
Re: terminology markspace <-@.> - 2012-04-19 20:01 -0700
Re: terminology Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-04-20 07:09 -0300
Re: terminology Lew <noone@lewscanon.com> - 2012-04-20 08:05 -0700
Re: terminology markspace <-@.> - 2012-04-20 11:03 -0700
Re: "static context" Lew <noone@lewscanon.com> - 2012-04-21 04:15 -0700
csiph-web