Java - Allgemeine Fragen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • kennt sich hier jemand mit java entwicklung aus?

      gibts dazu gute (free) learn yourself tutorials die einem relativ schnell ergebnisse bringen?

      wie lange (stunden ungefähr) muss man investieren damit die sprache auf einem anständigen level beherscht?


      ty


      Edit by ramius: Aus dem Mitteil-Thread verschoben (einschließlich Folgeposts)
      Down - Set- Hut


      Scrimmage to the Death!
    • Luke LaLonde schrieb:

      glaub nich

      @enrag3d: kommt drauf an, ob du vorkenntnisse im bereich programmierung hast insbesondere objekt-orientierte programmierung. ohne ist der einstieg glaub ich weitaus schwieriger



      html "programmierung" is aber ewig her, bin aber recht pc affin wenn das was hilft.
      sonst keine kenntnisse

      ist java dann überhaupt machbar??
      Down - Set- Hut


      Scrimmage to the Death!
    • enRag3d schrieb:

      Luke LaLonde schrieb:

      glaub nich

      @enrag3d: kommt drauf an, ob du vorkenntnisse im bereich programmierung hast insbesondere objekt-orientierte programmierung. ohne ist der einstieg glaub ich weitaus schwieriger



      html "programmierung" is aber ewig her, bin aber recht pc affin wenn das was hilft.
      sonst keine kenntnisse

      ist java dann überhaupt machbar??

      html ist leider keine programmiersprache im herkömmlichen sinne und bringt dir in diesem fall nichts. pc affinität ist leider auch zu unpräzise, um daraus zu schließen, ob dir programmieren leicht fallen würde :P
      du kannst es natürlich mit den herkömmlichen quellen versuchen, es wird aber wahrscheinlich schon einige zeit in anspruch nehmen, um dir überhaupt die grundlegenden strukturen javas anzueignen. kann da aber auch nicht aus erfahrung sprechen, ich habs in ner vorlesung gelernt.
      wofür brauchst du es denn?
    • bin nur interessiert daran,

      endziel ist vmtl iwann mal im bereich app programmierung was zu verstehen
      ich muss nicht alles können aber zumindest die grundlagen verstehen und vllt auch kleine sachen selber machen können


      geht darum dass ich in meinem neuen job "business analyst" bischen in die materie einsteigen will von dem it-unternehmen in dem ich arbeite
      Down - Set- Hut


      Scrimmage to the Death!
    • In diesem Fall ist es sicherlich am sinnvollsten du fängst mit einem entsprechend Buch (bzw. dessen online Ausgabe) bei Null an und machst die einzelnen Kapitel durch. Wichtig ist auch Praxis. Rein vom lesen lernen wohl nur wenige wirklich Programmieren.

      Starten kannst du beispielsweise mit dem bereits genannten Java ist auch eine Insel und falls du fragen hast, kannst du diese gerne hier stellen.
    • Durch ein gesamtes Verzeichnis Iterieren

      Verzweifel gerade daran, einen geeigneten Algorithmus zu finden, der duch ein gesamtes Verzeichnis iteriert, und immer wenn eine .java Datei gefunden wird, sie auf Fehler überprüft.

      Die Fehlerüberprüfung läuft bereits für Files, die direkt im Root-Ordner sind.
      Steh aber auf dem Schlauch, wie ich dann durch die Verzeichnisse gehe. Wollte es erst rekursiv machen. Problem dabei ist aber, dass der RootFolder, welcher als Parameter an die Methode übergeben wird, von einer anderen Klasse nur über einen Getter zu erhalten ist und dieser auch final ist, ich diesen also nicht ändern kann/darf.

      Code

      Quellcode

      1. public ValidationResult validate(final ValidationTask task)
      2. throws CodeValidationException {
      3. Path startFolder = Paths.get(task.getRootFolder());
      4. List<String> directoryList = new LinkedList<String>();
      5. List<String> fileList = new LinkedList<String>(); //List for saving .java files, not sure if necessary
      6. BufferedReader reader;
      7. ValidationResult warningList = new ValidationResult();
      8. List<String> stringWarningList = new LinkedList<String>(); //List for saving warnings as strings, makes writing file easier
      9. try (DirectoryStream<Path> fileStream = Files.newDirectoryStream(startFolder)) {
      10. for (Path pathElem : fileStream) {
      11. String stringPath = pathElem.toString();//type Path changed into String (not sure if necessary if we use List<Path> directoryList)
      12. if (directoryList.contains(stringPath)) {
      13. System.out.println("Skipping entity :"+stringPath);
      14. continue; //skips folder if already in directoryList
      15. }
      16. if (Files.isDirectory(pathElem)) {
      17. System.out.println("Ignoring Directory: "+pathElem);
      18. continue;
      19. }
      20. if (!Files.isDirectory(pathElem)) { //if pathElem is file
      21. System.out.println("found file" + stringPath);
      22. if(stringPath.contains(".java")){
      23. System.out.println("File confirmed as .java");
      24. if (!fileList.contains(stringPath)){
      25. System.out.println("File not in List");
      26. fileList.add(stringPath);
      27. int lineCounter=1;
      28. reader = Files.newBufferedReader(pathElem, StandardCharsets.UTF_8);
      29. System.out.println("Aktuelle Zeile "+lineCounter); //Ausgabe der aktuellen Zeile f�r Debug-Zwecke
      30. String line = reader.readLine();
      31. while(line!=null){
      32. int lineLength = line.length();
      33. if (lineLength > 120){
      34. Warning warningLength = new Warning (stringPath, lineCounter, WarningType.TOO_MANY_CHARACTERS);
      35. //System.out.println(WarningType.TOO_MANY_CHARACTERS);
      36. warningList.addWarning(warningLength);
      37. stringWarningList.add("Error: "+WarningType.TOO_MANY_CHARACTERS+" in File: "+stringPath+" at line: "+lineCounter);
      38. System.out.println("Error: "+WarningType.TOO_MANY_CHARACTERS+" in File: "+stringPath+" at line: "+lineCounter);
      39. }
      40. if (line.endsWith(" ")){
      41. Warning warningSpaceEnd = new Warning (stringPath, lineCounter, WarningType.TRAILING_WHITESPACES);
      42. //System.out.println(WarningType.TRAILING_WHITESPACES);
      43. warningList.addWarning(warningSpaceEnd);
      44. stringWarningList.add("Error: "+WarningType.TRAILING_WHITESPACES+" in File: "+stringPath+" at line: "+lineCounter);
      45. System.out.println("Error: "+WarningType.TRAILING_WHITESPACES+" in File: "+stringPath+" at line: "+lineCounter);
      46. }
      47. if (line.startsWith(" ") && !line.startsWith(" *")){
      48. Warning warningSpaceStart = new Warning (stringPath, lineCounter, WarningType.FAULTY_INDENTATION);
      49. //System.out.println(WarningType.FAULTY_INDENTATION);
      50. warningList.addWarning(warningSpaceStart);
      51. stringWarningList.add("Error: "+WarningType.FAULTY_INDENTATION+" in File: "+stringPath+" at line: "+lineCounter);
      52. System.out.println("Error: "+WarningType.FAULTY_INDENTATION+" in File: "+stringPath+" at line: "+lineCounter);
      53. }
      54. line = reader.readLine();
      55. lineCounter++;
      56. // System.out.println(lineCounter);
      57. }
      58. System.out.println("while-Schleife Ende");
      59. }
      60. }
      61. }
      62. }
      63. } catch (IOException e) {
      64. e.printStackTrace();
      65. }
      66. //Directories suchen
      67. try (DirectoryStream<Path> dirStream = Files.newDirectoryStream(startFolder)) {
      68. for (Path pathElem : dirStream) {
      69. String stringPath = pathElem.toString();//type Path changed into String (not sure if necessary if we use List<Path> directoryList)
      70. if (directoryList.contains(stringPath)) {
      71. System.out.println("Skipping entity :"+stringPath);
      72. continue; //skips folder if already in directoryList
      73. }
      74. if (Files.isDirectory(pathElem)) {
      75. System.out.println("Starting Search in subdirectory: "+pathElem);
      76. //HIER MUSS REKURSIVER AUFRUF VON SIMPLECODEVALIDATOR HIN!
      77. }
      78. }
      79. } catch (IOException e) {
      80. e.printStackTrace();
      81. }
      82. try {
      83. Files.write(Paths.get(task.getResultFile()), stringWarningList, StandardCharsets.UTF_8);
      84. }
      85. } catch (IOException e) {
      86. e.printStackTrace();
      87. }
      88. return warningList;
      89. }
      Alles anzeigen


      Jemand Ideen oder Anregungen? Need help.

      €: Hab gerade das hier gefunden. docs.oracle.com/javase/tutorial/essential/io/walk.html

      Kann mir das jemand genauer erläutern?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Aro ()

      "I'd only suggest that you try to understand other people. Try to learn empathy"
    • Es ist keine unübliche Aufgabe über ein Verzeichnis zu iterieren, weswegen es da natürlich viele Lösung online zu gibt.

      Hier ein Beispiel für den FileVistier:

      Java-Quellcode

      1. class MyVisitor implements FileVisitor<Path> {
      2. @Override
      3. public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) {
      4. // diese Methode wird aufgerufen, bevor die erste Datei eines Verzeichnisses in die visitFile Methode gegeben wird
      5. return CONTINUE;
      6. }
      7. @Override
      8. public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
      9. // hier kannst du die Datei untersuchen
      10. System.out.println(file);
      11. return CONTINUE;
      12. }
      13. @Override
      14. public FileVisitResult postVisitDirectory(Path dir, IOException exc) {
      15. // diese Methode wird aufgerufen, nachdem die letzte Datei eines Verzeichnisses in die visitFile Methode gegeben wurde ODER wenn ein Fehler im Verzeichnis aufgetreten ist
      16. if(exc != null) System.err.println("WARNING: " + exc);
      17. return CONTINUE;
      18. }
      19. @Override
      20. public FileVisitResult visitFileFailed(Path file, IOException exc) {
      21. // diese Methode wird aufgerufen, wenn die Datei nicht untersucht werden kann
      22. return CONTINUE;
      23. }
      24. }
      25. Path startingDir = Paths.get(task.getRootFolder());
      26. MyVisitor visitor = new MyVisitor();
      27. Files.walkFileTree(startingDir, visitor);
      Alles anzeigen


      Das Beispiel ist eine vereinfachte Form hiervon. Probiere am besten erst mal diese kleine Beispiel aus und falls die visitFile Methode die Dateien bekommt, welche du untersuchen willst, dann kannst du dort deinen anderen Code einfügen.
    • Diese Methode benötigt aber eine eigene Klasse, um das Interface zu implementieren oder?

      Darf nämlich, so denke ich zumindest, die bestehende klassenstruktur die mir vorliegt nicht verändern. Sprich keine neuen Klassen etc. erstellen. Zumindest gibts diesen Hinweis: "Die vorgegebenen Java-Klassen durfen bis auf ¨ SimpleCodeValidator nicht verändert werden.
      Dies gilt ebenfalls fur das Package"

      €: Gerade noch was gefunden:

      Quellcode

      1. try {
      2. Files.walk(startFolder).forEach(System.out::println);
      3. } catch (IOException e) {
      4. e.printStackTrace();
      5. }


      Kann ich hier anstatt einer Konsolen-Ausgabe, dass Ergebnis auch in eine Liste speichern?
      Finde dazu nichts mehr gescheites. Bin auch schon müde..

      Ok. Glaub ich habs geschafft.

      Quellcode

      1. try {
      2. Files.walk(startFolder).forEach(Path -> {
      3. String stringPath = Path.toString();
      4. System.out.println(stringPath);
      5. directoryList.add(stringPath);
      6. });
      7. } catch (IOException e) {
      8. e.printStackTrace();
      9. }


      Hab so das komplette Verzeichnis in einer Liste gespeichert, wo ich dann nur überprüfen muss, welche Files mit .java enden. Sollte ich hinbekommen.
      Trotzdem danke rami :love:

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Aro ()

      "I'd only suggest that you try to understand other people. Try to learn empathy"
    • Hey, wir haben in der Uni vor 3 Wochen mit Java angefangen, wegen anstehenden Klausuren habe ich aber keine Zeit gefunden mich einzuarbeiten, daher noch absoluter Noob. Hab jetzt eine Aufgabe, die ich abgeben muss, aber keine Ahnung, wie ich anfangen soll. Will ein Gutmensch ein bisschen Zeit für mich investieren? :chinese: Würde am liebsten das über TS/Skype klären

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mr_Oizo ()

    • Benutzer online 1

      1 Besucher