Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #37463

Re: Are Outer Classes Loaded Lazily?

From Eric Sosman <esosman@comcast-dot-net.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: Are Outer Classes Loaded Lazily?
Date 2017-09-25 07:38 -0400
Organization A noiseless patient Spider
Message-ID <oqaps8$c5s$1@dont-email.me> (permalink)
References <opu86b$k29$1@news.albasani.net> <oq13am$9v4$1@gwaiyur.mb-net.net> <5e2274e3-9af7-46e7-b4a3-dd656e639be2@googlegroups.com> <oq8jji$vf6$1@news.albasani.net>

Show all headers | View raw


On 9/24/2017 11:39 AM, j4n bur53 wrote:
> [...]
> 
> itself. Basically Eric Sosman
> already answered:
> 
>  >     java -verbose:class esosman.misc.Foo
>  >
>  > This told me that forName() caused Inner to be loaded
>  > but not Outer, and that getEnclosingClass() caused
>  > Outer to be loaded but not initialized.
> 
> But we don't see the code he was using,
> maybe he can upload his test case on Gist?

     Here it is.  If you change the package name, you will also
need to change the forName() call:

	// Foo.java:
	package esosman.misc;
	public class Foo {
	   public static void main(String[] unused)
	         throws ClassNotFoundException {
	      System.out.println("Calling forName() ...");
	      Class inner = Class.forName("esosman.misc.Outer$Inner");
	      System.out.println("Got class: " + inner);
	      System.out.println("Calling getEnclosingClass() ...");
	      Class outer = inner.getEnclosingClass();
	      System.out.println("Got class: " + outer);
	   }
	}

	// Outer.java:
	package esosman.misc;
	public class Outer {
	   static {
	      System.out.println("Initializing Outer");
	   }

	   static class Inner {
	      static {
	         System.out.println("Initializing Inner");
	      }
	   }
	}

-- 
esosman@comcast-dot-net.invalid
Twelve hundred thirteen days to go.

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-20 19:23 +0200
  Re: Are Outer Classes Loaded Lazily? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-09-20 17:45 -0400
    Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-21 01:18 +0200
      Re: Are Outer Classes Loaded Lazily? lewbloch@gmail.com - 2017-09-20 17:28 -0700
        Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-21 09:29 +0200
          Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-21 09:40 +0200
          Re: Are Outer Classes Loaded Lazily? lewbloch@gmail.com - 2017-09-21 11:44 -0700
  Re: Are Outer Classes Loaded Lazily? Marcel Mueller <news.5.maazl@spamgourmet.org> - 2017-09-21 21:18 +0200
    Re: Are Outer Classes Loaded Lazily? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-09-21 16:20 -0400
      Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-22 11:12 +0200
        Re: Are Outer Classes Loaded Lazily? Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2017-09-22 15:55 -0400
          Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-23 18:33 +0200
    Re: Are Outer Classes Loaded Lazily? lewbloch@gmail.com - 2017-09-22 13:48 -0700
      Re: Are Outer Classes Loaded Lazily? Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2017-09-22 23:46 -0400
        Re: Are Outer Classes Loaded Lazily? lewbloch@gmail.com - 2017-09-25 13:23 -0700
      Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-24 17:39 +0200
        Re: Are Outer Classes Loaded Lazily? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-09-25 07:38 -0400
        Re: Are Outer Classes Loaded Lazily? lewbloch@gmail.com - 2017-09-25 13:25 -0700

csiph-web