java - Why can't I call new from within a static method? -


i have utility functions i've declared static, not instantiated, used utilities. create generator method can generate objects, in same static utility context.

public class peerconnection {      public class _heartbeat{         protected string beat = "hb_000";         protected string ack  = "hb_001";         protected string msg  = null;          protected date beattime = null;         protected date acktime  = null;         protected short missedbeats = 0;         protected short max_miss = 3;     }      public _heartbeat heartbeat = null;     //map of heartbeat objects per peer connection     public static list<_heartbeat> heartbeats = new arraylist<_heartbeat>();      public static void generateheartbeat(){         heartbeats.add(new _heartbeat());     } 

my reasoning, want call sendheartbeat method:

   private static int sendheartbeat(peerconnection peer){         int acks = 0;         peerconnection.generateheartbeat();         peerconnection._heartbeat hb = peer.heartbeats.get(peer.heartbeats.size() - 1);         hb.msg = hb.beat;          while (acks <= 0 && hb.missedbeats < hb.max_miss){          [...]         }    } 

i concept of why static works way, i'm thinking there has work around scenario.

_heatbeat not static class, instance of explicitly tied instance of peerconnection class. i.e. instantiate _heartbeat need instance of peerconnection class.

one option make _heartbeat static class (i.e. public static class _heartbeat, think want.

another option instantiate both new peerconnection().new _heartbeat() (i saw in java certification exam, hate , never use may not remembering syntax correctly).


Comments

Popular posts from this blog

html - Outlook 2010 Anchor (url/address/link) -

javascript - Why does running this loop 9 times take 100x longer than running it 8 times? -

Getting gateway time-out Rails app with Nginx + Puma running on Digital Ocean -