2017-05-09 1 views
0
protected void createIdUpdateMapForMapObjects() 
{ 
    for (Iterator it = d_mapObjectList.iterator(); it.hasNext();) 
    { 
     MapObject mapObj  = (MapObject) it.next(); 
     long  transientId = mapObj.id(); 
     long  persistentId = g.getNewId(); 
     boolean minDPTObjectIdSet = false; 
     long  minDPTObjectId ; 
     long  maxDPTObjectId = g.upperBound(); 

     if(minDPTObjectIdSet == false) { 
      minDPTObjectId = persistentId; 
      System.out.println("min dpt" + minDPTObjectId); 
      System.out.println("max dpt" + maxDPTObjectId); 
      //insertDPTObjectId("minDPTObjectId", minDPTObjectId, "Starting change ID"); 
      //insertDPTObjectId("maxDPTObjectId", maxDPTObjectId, "End change ID"); 
      minDPTObjectIdSet = true; 

     } 

public Map<String, Long> getMinMaxDPTObjectId(String Name, long minmaxDPTObjectId) { 
    Map<String,Long> minMaxDPTObjectId = new HashMap<String,Long>(); 

    minMaxDPTObjectId.put("minDPTObjectId",minDPTObjectId); 
     //minDPTObjectId which i need to get from above method 
    minMaxDPTObjectId.put("maxDPTObjectId",maxDPTObjectId); 
     //same 

    return minMaxDPTObjectId; 
} 

Ich bin nicht in der Lage, die Werte von minDPTObjectId und maxDPTObjectId auf eine Karte zurückzugeben, die in einem anderen Paket verwendet werden müssen ich eine Karte denke Rückkehr wäre eine gute Option sein, aber fest ob wie es gehtRückkehr Karte von einer geschützten Java-Methode

+0

** 1) ** Sie rufen 'getMinMaxDPTObjectId()' nirgendwo auf. ** 2) ** ist '[min | max] DPTObjectId' eine variable Instanz oder haben Sie diese nicht deklariert? ** Ich sehe die Deklarationen in der anderen Methode, nicht im selben Umfang **. ** 3) ** Wenn Sie nur zwei Werte zurückgeben müssen, könnten Sie entweder variable Instanz mit Getter oder eine selbst erstellte Instanz 'Holder' verwenden. Zu vielen Fragen, könnten Sie [fragen], diese Aufgabe zu verbessern – AxelH

+0

Ihr Code fehlt geschweiften Klammern, versuchen Sie, zwei Dinge anstelle von nur einer (Rückgabe minDPTObjectId, maxDPTObjectId;), von einer Methode, deren Rückgabetyp ist ungültig und was kann also nichts zurückgeben. Lesen Sie Ihr einführendes Java-Buch oder das Java-Tutorial über Methoden. –

+0

Ich habe versucht, die Frage zu lösen, aber jetzt muss ich diese Karte in einem anderen Paket verwenden, das nicht möglich ist –

Antwort

0
public Map createIdUpdateMapForMapObjects() 
{ 
    IdGenerator g = d_idm.getGenerator(OraclePropertyAdapter.NEXTID); // could be null 
    Map<String, Long> minMaxDPTObjectIdMap    = null; 
    for (Iterator it = d_mapObjectList.iterator(); it.hasNext();) 
    { 
     MapObject mapObj  = (MapObject) it.next(); 
     long  transientId = mapObj.id(); 
     long  persistentId = g.getNewId(); 
     boolean minDPTObjectIdSet = false; 
     long  minDPTObjectId ; 
     long  maxDPTObjectId = g.upperBound(); 
     minMaxDPTObjectIdMap = new HashMap<String, Long>(); 
     minMaxDPTObjectIdMap.put("maxDPTObjectId",maxDPTObjectId); 

     if(minDPTObjectIdSet == false) { 
      minDPTObjectId = persistentId; 
      minMaxDPTObjectIdMap.put("minDPTObjectId",minDPTObjectId); 
      minDPTObjectIdSet = true; 
} 
      return minMaxDPTObjectIdMap; 

sieht das gut aus?

Verwandte Themen