Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe eine Aufgabe bekommen die darin besteht Fehler in einem Java-Programm zu finden. Leider hab ich den Code nur als Bild bekommen und kann ihn hier nicht sauber posten. Es sollen angeblich sehr viele und Fehler aller Art vorhanden sein. Allerdings kann ich keine Fehler finden und schon gar nicht Triviale.
Könnt ihr nicht mal drüber schauen und mir vielleicht ein paar Tipps geben wo die Fehler versteckt sein könnten. müsst ihr mir ja nicht vorsagen, aber vielleicht darauf hinweisen welche Zeilen ich mir mal genauer anschauen sollte.. oder findet ihr auch nichts?
Wäre sehr wichtig für mich.
Vielen Dank und Beste Grüße
Also, ich kann ihn so nicht lesen. Wenn du dir die Mühe machst ihn abzutippen und ihn vernünftig formatiert hier postest, wäre ich bereit drüber zu schauen.
ich kann irgendwie das bild nicht richtig lesen, ist die auflösung zu schlecht oder muss ich das ding woanders runterladen?
zur Fehlersuche, ich würd sagen das du den text einfach mal schnell abtippst und dann mit einem debugger drüber gehst. der sollte die schlimmen fehler schon finden.
Sorry, wusste nicht das das hier so mickrig rüberkommt.
Den Code bzw. das Bild könnt ihr euch jetzt unter: http://www.cm-informatics.de/Assessment.png
runterladen, falls es nicht leserlich ist...lokal speichen (einfach rechtsklick -> Speichern unter...)
abtippen dauert viel zu lange, abgesehen von den Fehlern die ich dann nich selber einbaue...
Hihi, in den ersten zeilen sind schon lustige fehler eingebaut. Mal so nebenbei wofür musst du das machen? Ich finde es übrigens schon dreist von dir, den code nicht mal in eine ide abtippen zu wollen, dadurch würdest du einige fehler finden, anscheinend hat du keine lust, ist besser wenn sich hier ein dummer findet der das für dich erledigt. Denke so hat die aufgabe für dich keinen sinn und null lehrinhalt
Der Sinn der Aufgabe ist es das man es eben nicht in eine IDE eingibt, den Compiler fragen kann ja jeder. wo ist dann der Sinn der Aufgabe? Oder gibst du auch alles in den Google-Übersetzer ein wenn du einen Text übersetzen musst? Hier geht es um das scharfsinnige erkennen von Fehlern, eben um die Fähigkeit gewisse Fehler auf Anhieb mit dem bloßen Auge zu erkennen. Deswegen frage ich euch höflich ob ihr mir ein paar Tipps geben oder ihr zumindest sagen könnt, ob es triviale Fehler oder komplexe Sachverhalte sind die da nicht stimmen.
Der Sinn ist aber auch nicht, dass man ein Forum nach der Lösung fragt ;-)
Ich muss ehrlich sagen, ich find auf anhieb keinen.... Ist auch schwer wenn man nicht weiß wonach man suchen soll. Da sind ein paar Dinge mit diesen private statice klassen und Generics .. aber auf den ersten Blick wüsste ich nicht was nciht passen sollte...
Vielen Dank für deine Einschätzung, das hilft mir schonmal. Aber es kann nicht sein das ich direkt mit Füßen getreten werde wenn ich höflich eine Frage stelle und man mir dan unterstellt ich sei zu faul es abzutippen, denn darum geht es ja gar nicht. Ein Forum ist ja eigentlich dafür da um ein paar Tipps zu bekommen. ich erwarte ja keine Lösung nur Tipps bzw. Hinweise
Auch jemand der höflich fragt, kann stinkfaul sein.
Was für Tipps erwartest du?
Schau dir das Programm Zeile für Zeile an und kontrolliere, ob die Syntax in Ordnung ist, ob die Variablen deklariert und definiert sind, dass die Parameter und Generics stimmen und dass die Modifier passen.
Wenn du keinen Fehler findest, wirst du es wohl abtippen müssen.
In Zeile 9 wird ein Konstruktor einer abstracten Klasse definiert. Macht das Sinn? Ich kann eh keine Objekte der Klasse erzeugen. Also kann der Kontruktur auch keine initialisieren. Seh ich das richtig?
Hallo zusammen,
habe jetzt den Quellcode abgeschrieben und es sind in der Tat nur 4 Fehler und 6 Warnungen darin zu finden. Also das es von Fehlern nur so wimmelt kann man bei weitem nicht behaupten.
Kiri hat diese Probleme schon richtig erkannt. Dazu kommt noch eine Warung bei der Override-Funktion in Zeile 20. Ich muss sagen das ich weitaus mehr Fehler erwartet hätte
Hier der Code (für die Leute die mir unterstellen wollen, das ich lüge und en Quelltext doch nicht abgeschreiben habe)... also von wegen zu faul. Thema ist erledigt
Code:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Vector;
public class CheckupOne {
private abstract static class AbstractStorage<ItemType>
{
public AbstractStorage(ItemType... aPrefillItems)
{
super();
prefill(aPrefillItems);
}
protected abstract void prefill(ItemType... aPrefillItems);
}
private static class Storage<ItemType> extends AbstractStorage<ItemType>
{
private final List<ItemType> mItems = new ArrayList<ItemType>();
public Storage(ItemType... aPrefillItems)
{
super(aPrefillItems);
}
@Override protected void prefill(ItemType[] aPrefillItems)
{
mItems.addAll(Arrays.asList(aPrefillItems));
};
@Override public String toString()
{
final String result = new String();
for (ItemType item : mItems)
{
result += item != null ? item.toString() : "<null>";
result += ", ";
}
return result.substring(0, result.lastIndexOf(','));
}
}
private static class UniqueStorage<ItemType> extends AbstractStorage<ItemType>
{
private final Vector<ItemType> mItems = new Vector<ItemType>();
public UniqueStorage(ItemType... aPrefillItems)
{
super(aPrefillItems);
}
protected void prefill(ItemType[] aPrefillItems)
{
add(aPrefillItems);
}
public void add(ItemType... aPrefillItems)
{
for (ItemType itemType : aPrefillItems)
{
if (!mItems.contains(itemType))
{
mItems.add(itemType);
}
}
}
}
private class NamedItem<PayloadType extends Comparable>
{
private final String mName;
private final PayloadType mPayload;
public NamedItem(final String mName, PayloadType mPayloadType)
{
this.mName = mName;
this.mPayload = mPayloadType;
}
public NamedItem(String mName)
{
this.mName = mName;
}
@Override public boolean equals(Object obj)
{
return mName.equals(((NamedItem) obj).mName) && mPayload.equals(((NamedItem)obj).mPayload);
}
@Override public String toString()
{
return mName;
}
}
public static void main(String[] args)
{
UniqueStorage<?> names = new UniqueStorage<NamedItem<String>>(new NamedItem<String>("a", "A"));
UniqueStorage<?> places = new UniqueStorage<NamedItem<String>>(new NamedItem<String>("b", "B"));
final Storage<UniqueStorage<NamedItem<String>>> storage = new Storage<UniqueStorage<NamedItem<String>>>(names, places);
System.out.println(storage);
}
}
In Zeile 9 wird ein Konstruktor einer abstracten Klasse definiert. Macht das Sinn? Ich kann eh keine Objekte der Klasse erzeugen. Also kann der Kontruktur auch keine initialisieren. Seh ich das richtig?