Lebensdauer von Attributen und Variablen

Status
Nicht offen für weitere Antworten.

Heiko

Bekanntes Mitglied
So hier hab ich das Problem näher eingrenzen können, ich hoffe diesmal kann mir jemand helfen.

In der folgenden Methode wird ein Vektor befüllt und in ein Array umgewandelt. Das geschieht in einem Servlet.

Der Vektor wurde von mir zuvor mit
Code:
private Vector vektor =new Vector(100);
initialisiert.

Beim ersten Durchlauf des Servlet stimmt die Ausgabe und die Verarbeitung.
Bei den folgenden Durchläufen gibt es ein Problem, der Vector vektor scheint irgendwo im Speicher zu hängen, denn die neuen Ausgaben zeigen die alten Ergebnisse, erweitert um die Neuen, die in der Methode streamLesen hinzugefügt wurden.

Was kann ich da tun?
Ich bin für jeden Hinweis dankbar, auch wenn er noch so klein ist!

Code:
public void streamLesen(
		BufferedReader file,
		String datei,
		HttpServletRequest request)
	{
		try
		{

			String ausgabe = "";
			String zeile;
			String ziffern;
			String[] zeilen;
			int count = 1;

			//Ausgabe in der Konsole
			System.out.println(datei);

			//Schleife, die die Datei Zeilenweise erfasst
			while ((zeile = file.readLine()) != null)
			{
				int schleife = zeile.indexOf("rb.getString(");
				int anfang = 0;
				int temp = 0;

				//Schleife, die die Zeilen durchsucht
				while (schleife >= 0)
				{
					if (temp == 0)
					{
						temp = schleife;
					}

					int beginn = zeile.indexOf("rb.getString(", temp);
					temp = beginn + 1;

					if (beginn >= 0)
					{
						anfang = zeile.indexOf("\"", beginn);
					} else
					{
						schleife = -1;
					}
					int ende = anfang + 5;

					//Auslesen der gewünschten Informationen
					if (ende >= beginn)
					{
						if (beginn >= 0)
						{
							ende = zeile.indexOf("\")", beginn);

							ziffern = zeile.substring(anfang + 1, ende);
							Integer Iziffern =
								new Integer(Integer.parseInt(ziffern));
							int pos;

							//Ausgabe in der Konsole
							ausgabe = ziffern + " " + datei;

							//Befüllt den Vektor mit den Werten aus der Datei
							//inklusive der richtigen Dateinamen
							if ((pos = vektor.indexOf(Iziffern)) >= 0)
							{
								Object obj = vektor.get(pos + 1);
								String wert = obj.toString();
								if (wert.indexOf(datei) < 0)
								{
									Object object = vektor.get(pos + 1);
									String einfueg =
										datei + ", " + object.toString();
									vektor.set(pos + 1, einfueg);
								}

							} else
							{
								vektor.add(Iziffern);
								vektor.add(datei);
							}
							//Ausgabe in der Konsole
							System.out.println(ausgabe);
						}
					}
				}
				count++;
			}
			String[] zuHtml = erstellArray(vektor);
			request.setAttribute("zuHtml", zuHtml);
		} catch (Exception e)
		{
			System.out.println("Fehler in Methode StreamLesen");
		}
	}

	public String[] erstellArray(Vector vektor)
	{
		System.out.println("Vektorinhalt: " + vektor.toString());
		Vector neu = new Vector(100);
		ungenutzt = new Vector(100);
		String temp1 = "", temp2 = "", satz = "";
		for (int i = 0; i < vektor.size(); i++)
		{
			//Holt sich die Ziffernfolge aus dem Vektor
			Object obj1 = vektor.get(i);
			temp1 = obj1.toString();
			i++;

			//Macht die Ziffernfolgen wieder 4-stellig
			for (int j = 0; j < temp1.length(); j++)
			{
				if (temp1.length() < 4)
				{
					temp1 = "0" + temp1;
				}
			}
			//Holt sich die Dateinamen aus dem Vektor
			Object obj2 = vektor.get(i);
			temp2 = obj2.toString();
			temp1.trim();
			temp2.trim();
			satz = temp1 + " " + temp2;
			neu.add(satz);
			ungenutzt.add(obj1);
		}
		int kapazitaet = neu.size();
		//Sortiert den Vektor
		Collections.sort(neu);
		Collections.sort(ungenutzt);
		String[] vektorInhalt = new String[kapazitaet];
		for (int i = 0; i < vektorInhalt.length; i++)
		{
			vektorInhalt[i] = neu.get(i).toString();
		}

		return vektorInhalt;
	}
 

meez

Top Contributor
Uhhmm...Das kann man sicher ein wenig schöner lösen...Poste mal die Datei, welche du einliest, und was du genau ausgeben willst..
 

Heiko

Bekanntes Mitglied
Was genau möchtest du?

Die Methode in der ich den Stream einlese? Ich lese nicht nur eine Datei ein, das ist flexibel.
 

Heiko

Bekanntes Mitglied
meez hat gesagt.:
Den Inhalt der Datei...

Hier ein Teil des Codes von einer Dateien, die eingelesen werden können (wenn es der Benutzer auswählt)

Code:
	private Table generateTableAllgemein(
		String[] headlines,
		String[] columnText,
		java.text.DecimalFormat decform,
		Tr_knzvalExBean exb,
		Tr_knzvalExBean exbvorp)
		throws AnwendungsFehlerException
	{

		Table pdt = null;

		try
		{
			pdt = new Table(3);
			pdt.setWidths(new float[] { 50, 25, 25 });
			pdt.setTableFitsPage(true);
			pdt.setBorderWidth(2);
			pdt.setPadding(1);
			pdt.setSpacing(1);

			Cell cell = new Cell(headlines[0]);
			cell.setHeader(true);
			cell.setHorizontalAlignment(cell.ALIGN_CENTER);
			cell.setColspan(3);
			cell.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0));
			pdt.addCell(cell);

			cell = new Cell(headlines[1]);
			cell.setHeader(true);
			cell.setColspan(1);
			pdt.addCell(cell, 1, 1);
			cell = new Cell(headlines[2]);
			cell.setHeader(true);
			cell.setColspan(1);
			pdt.addCell(cell);
			if (columnText.length >= 1)
			{
				pdt.addCell(columnText[0]);
				if (exb.getW01() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW01().intValue()));
				if (exbvorp.getW01() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW01().intValue()));
			}
			if (columnText.length >= 2)
			{
				pdt.addCell(columnText[1]);
				if (exb.getW02() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW02().intValue()));
				if (exbvorp.getW02() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW02().intValue()));
			}
			if (columnText.length >= 3)
			{
				pdt.addCell(columnText[2]);
				if (exb.getW03() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW03().intValue()));
				if (exbvorp.getW03() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW03().intValue()));
			}
			if (columnText.length >= 4)
			{
				pdt.addCell(columnText[3]);
				if (exb.getW04() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW04().intValue()));
				if (exbvorp.getW04() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW04().intValue()));
			}
			if (columnText.length >= 5)
			{
				pdt.addCell(columnText[4]);
				if (exb.getW05() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW05().intValue()));
				if (exbvorp.getW05() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW05().intValue()));
			}
			if (columnText.length >= 6)
			{
				pdt.addCell(columnText[5]);
				if (exb.getW06() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW06().intValue()));
				if (exbvorp.getW06() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW06().intValue()));
			}
			if (columnText.length >= 7)
			{
				pdt.addCell(columnText[6]);
				if (exb.getW08() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW07().intValue()));
				if (exbvorp.getW07() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW07().intValue()));
			}
			if (columnText.length >= 8)
			{
				pdt.addCell(columnText[7]);
				if (exb.getW08() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW08().intValue()));
				if (exbvorp.getW08() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW08().intValue()));
			}
			if (columnText.length >= 9)
			{
				pdt.addCell(columnText[8]);
				if (exb.getW09() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW09().intValue()));
				if (exbvorp.getW09() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW09().intValue()));
			}
		} catch (BadElementException bee)
		{
			throw new AnwendungsFehlerException(bee.getMessage(), "Trimzahlen", this, "generateTableAllgemein", " ");
		}

		return pdt;
	}

						pdt.addCell(decform.format(exb.getW03().intValue()));
				if (exb.getW04() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW04().intValue()));

				if (exbvorp.getW03() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW03().intValue()));
				if (exbvorp.getW04() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW04().intValue()));
			}
			if (columnText.length >= 3)
			{
				pdt.addCell(columnText[2]);
				if (exb.getW05() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW05().intValue()));
				if (exb.getW06() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW06().intValue()));

				if (exbvorp.getW05() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW05().intValue()));
				if (exbvorp.getW06() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW06().intValue()));
			}
			if (columnText.length >= 4)
			{
				pdt.addCell(columnText[3]);
				if (exb.getW07() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW07().intValue()));
				if (exb.getW08() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW08().intValue()));

				if (exbvorp.getW07() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW07().intValue()));
				if (exbvorp.getW08() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW08().intValue()));
			}
			if (columnText.length >= 5)
			{
				pdt.addCell(columnText[4]);
				if (exb.getW09() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW09().intValue()));
				if (exb.getW10() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW10().intValue()));

				if (exbvorp.getW09() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW09().intValue()));
				if (exbvorp.getW10() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exbvorp.getW10().intValue()));
			}
			if (columnText.length >= 6)
			{
				pdt.addCell(columnText[5]);
				if (exb.getW11() == null)
					pdt.addCell(kba);
				else
					pdt.addCell(decform.format(exb.getW11().intValue()));
				if (exb.getW12() == null)
					pdt.addCell(kba);
 

meez

Top Contributor
Und du willst alle Werte auslesen, sortiern und in einen String-Array schreiben, welche in den Radiobutton gesetzt werden? (rb.getString())
 

Heiko

Bekanntes Mitglied
meez hat gesagt.:
Und du willst alle Werte auslesen, sortiern und in einen String-Array schreiben, welche in den Radiobutton gesetzt werden? (rb.getString())

Ja das sind Ressourceboundles, deren Werte ich auslesen soll und in einen Vektor einlese, dabei soll immer der Wert des Rb (z.B. 0185) und der Dateiname stehen.
Da es bis zu 100 Dateien sind, die ausgelesen werden können, und keine doppelten Werte bei den Ziffernfolgen entstehen dürfen, müssen die Dateinamen hintereinander geschrieben werden, daher wird das ja anhand der Ziffern überprüft, die bereits im Vektor gespeichert sind.

Zum Schluß, wenn die Abfrage über alle Dateien gelaufen ist wird das zusammengesetzt und in einem JSP ausgegeben im HTML Format.
 

meez

Top Contributor
So ?


Code:
 public void streamLesen() throws Exception {
      
            Hashtable values = new Hashtable();
            String datei="datei";
            String value, key;
            int n,i ;
            String[] zuHTML;
            Vector vector = new Vector();
            
            BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(datei)));
      
            n=-1;
            i=-1;
            for (String buffer;(buffer = in.readLine()) != null;) {
                  if ((n = buffer.indexOf("rb.getString(\"")) < 0 ||  (i= buffer.indexOf("\");", n + 1)) < 0)
                        continue;
                  n += "rb.getString(\"".length();                  
                  //Wert ermitteln
                  value = buffer.substring(n,i);
                  if (vector.indexOf(value + " " + datei) < 0)
                        vector.add(value + " " + datei);
                        
            }
	    
            
            java.util.Collections.sort(vector);
            zuHTML = (String[]) vector.toArray();
      
      }
 

meez

Top Contributor
Wenn du deas Problem mit den alten Einträgen lösen willst, musst du noch irgendwo mal ein vector.clear() einbauen...
 

Heiko

Bekanntes Mitglied
meez hat gesagt.:
Wenn du deas Problem mit den alten Einträgen lösen willst, musst du noch irgendwo mal ein vector.clear() einbauen...

Bei vector.clear brachte er mir immer eine ArrayIndexoutofBoundException -1

Ich schau mir mal deine Version an, wie hast du die so kurz hinbekommen? ;-)
 

Heiko

Bekanntes Mitglied
meez hat gesagt.:
So ?


[
value = buffer.substring(n,i);
if (vector.indexOf(value + " " + datei) < 0)
vector.add(value + " " + datei);

[/code]


Das wird nicht funktionieren, da ich ja mehrere Dateien einlese und nciht in jeder Datei die gleichen Boundles vorkommen.

Was hast du eigentlich mit der Hashtable vor? Das habe ich noch nciht verstanden.
 

meez

Top Contributor
Die Hashtbale wird nicht verwendet...


Code:
public void read() throws Exception {
      
            Hashtable values = new Hashtable();
            String datei="datei";
            String value, key;
            int n,i ;
            String[] zuHTML;
            Vector vector = new Vector();
            
            BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(datei)));
      
            n=-1;
            i=-1;
            for (String buffer;(buffer = in.readLine()) != null;) {
                  if ((n = buffer.indexOf("rb.getString(\"")) < 0 ||  (i= buffer.indexOf("\");", n + 1)) < 0)
                        continue;
                  n += "rb.getString(\"".length();                  
                  //Wert ermitteln
                  value = buffer.substring(n,i);
                 
		  for (n=0;n<vector.size();n++) {
		        if (! ((String) vector.get(n)).startsWith(value + " "))
                              vector.add(value + " " + datei);
		  }
                        
            }
 

Heiko

Bekanntes Mitglied
meez hat gesagt.:
Die Hashtbale wird nicht verwendet...


Code:
public void read() throws Exception {
      
            Hashtable values = new Hashtable();
            String datei="datei";
            String value, key;
            int n,i ;
            String[] zuHTML;
            Vector vector = new Vector();
            
            BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(datei)));
      
            n=-1;
            i=-1;
            for (String buffer;(buffer = in.readLine()) != null;) {
                  if ((n = buffer.indexOf("rb.getString(\"")) < 0 ||  (i= buffer.indexOf("\");", n + 1)) < 0)
                        continue;
                  n += "rb.getString(\"".length();                  
                  //Wert ermitteln
                  value = buffer.substring(n,i);
                 
		  for (n=0;n<vector.size();n++) {
		        if (! ((String) vector.get(n)).startsWith(value + " "))
                              vector.add(value + " " + datei);
		  }
                        
            }

Danke das schaue ich mir gleich mal an und probiere es durch. Ich melde mich wie das Ergebnis war.
Danke schonmal!
 

meez

Top Contributor
Das nicht vergessen..;)

Code:
 java.util.Collections.sort(vector);
 zuHTML = (String[]) vector.toArray();
 

Heiko

Bekanntes Mitglied
So ich habe es ausprobiert und folgender Fehler ist aufgetreten (derselbe, wie bei mir, als ich versuchte den Vector in der Methode zu deklrieren).

Mein Erklärungsversuch:

Ich fürchte, dass dadurch der Vector nicht an die Methode erstellArray übergeben wird, denn nach Kontrollausgaben von Werten habe ich herausgefunden, dass bei der Übergabe nur ein leerer Vektor ankommt und daher gibt es eine Exception.

Es kann doch nicht sein, dass das nicht zu machen ist, oder lieg ich jetzt völlig falsch?

Code:
E SRVE0026E: [Servlet-Fehler]-[-1]: java.lang.ArrayIndexOutOfBoundsException: -1
	at java.util.Vector.get(Vector.java(Compiled Code))
	at heiko2.Analyse.erstellArray2(Analyse.java:383)
	at org.apache.jsp._Ausgabe._jspService(_Ausgabe.java:88)
	at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:364)
	at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:694)
	at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:792)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
	at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
	at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
	at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
	at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
	at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
	at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:923)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:528)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:176)
	at heiko2.Analyse.doGet(Analyse.java:80)
	at heiko2.Analyse.doPost(Analyse.java:111)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
	at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
	at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
	at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
	at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
	at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
	at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:923)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:528)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:176)
	at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79)
	at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:201)
	at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
	at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:114)
	at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)
	at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
	at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
	at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:516)
	at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:366)
	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
 

meez

Top Contributor
Die Methode erstlell Array brauchst du doch nicht mehr...., Das macht dieser Teil: zuHTML = (String[]) vector.toArray();
 

Heiko

Bekanntes Mitglied
meez hat gesagt.:
Die Methode erstlell Array brauchst du doch nicht mehr...., Das macht dieser Teil: zuHTML = (String[]) vector.toArray();

Jetzt hab ich ne NullpointerException.

Habe jetzt einige Male rumprobiert, unteranderem so, dass ich die size vom Vector ausgegeben habe ehe der Fehler auftritt.

Dabei ist folgendes aufgefallen, wenn die Variable lokal deklariert ist dann ist die size 0 und die Exception kommt, wenn sie global deklariert ist funktioniert es aber eben mein Problem bleibt.
 
B

bygones

Gast
meez hat gesagt.:
Die Methode erstlell Array brauchst du doch nicht mehr...., Das macht dieser Teil: zuHTML = (String[]) vector.toArray();
habe nicht die ganze Diskussion mitverfolgt - aber um einen Array aus einer Collection zu machen muss immer der Typ des Arrays mitgegebene werden
Code:
String[] strings = (String[])vector.toArray(new String[vector.size()]);
 

meez

Top Contributor
deathbyaclown hat gesagt.:
meez hat gesagt.:
Die Methode erstlell Array brauchst du doch nicht mehr...., Das macht dieser Teil: zuHTML = (String[]) vector.toArray();
habe nicht die ganze Diskussion mitverfolgt - aber um einen Array aus einer Collection zu machen muss immer der Typ des Arrays mitgegebene werden
Code:
String[] strings = (String[])vector.toArray(new String[vector.size()]);

Stimmt...Hab ich vergessen zu schreiben... :oops:
 

Heiko

Bekanntes Mitglied
meez hat gesagt.:
deathbyaclown hat gesagt.:
meez hat gesagt.:
Die Methode erstlell Array brauchst du doch nicht mehr...., Das macht dieser Teil: zuHTML = (String[]) vector.toArray();
habe nicht die ganze Diskussion mitverfolgt - aber um einen Array aus einer Collection zu machen muss immer der Typ des Arrays mitgegebene werden
Code:
String[] strings = (String[])vector.toArray(new String[vector.size()]);

Stimmt...Hab ich vergessen zu schreiben... :oops:

Mal versuchen, habe keine Bestätigung erhalten, daher seh ich den Eintrag jetzt erst. melde mich gleich wieder.

Das funktioniert, aber das Variablenproblem besteht noch, habe eben aber ne Idee, ich geb bescheid, wie sie geklappt hat, bzw ob. ;-)
 

Heiko

Bekanntes Mitglied
Jetzt läuft mein Programm wieder, und ich kann jetzt auch den Vector mit clear löschen, hatte bisher nur an der falschen Stelle diesen Befehl eingesetzt.

Wenn ich jetzt noch rechtzeitig die Benutzerfehler abfangen kann, dann läuft mein Programm. :)

Danke für eure Geduld und die Hilfe!
 

Heiko

Bekanntes Mitglied
Problem ist fertig und Programm läuft.

Habe den Code von Meez mit meinem ursprünglichen gemischt, jetzt läuft alles.

Vielen Dank!
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben