1. Java / Говнокод #15661

    +65

    1. 1
    2. 2
    3. 3
    4. 4
    Graphics2D g = ...;
    String str = "Some string";
    FontRenderContext frc = g.getFontRenderContext();
    double height = g.getFont().createGlyphVector(frc, str).getPixelBounds(null, 0, 0).getHeight();

    Мне нужно было узнать точную высоту строки, которую я рисую на объекте Image. Спасибо stackoverflow за то, что он есть, по-моему, до этого способа просто невозможно догадаться, даже копая документацию, за несколько часов...

    evg_ever, 03 Апреля 2014

    Комментарии (22)
  2. Java / Говнокод #15659

    +81

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    // -1 esli NotFound, snachala massiv potom element
    	static int najtiElementVMassive(Object massiv,Object element){
    		if(massiv instanceof int[]) {
    			for(int i=0; i<((int[])massiv).length; ++i)
    				if(((int[])massiv)[i]==(int)element)
    					return i;
    		} else if(massiv instanceof byte[]) {
    			for(int i=0; i<((byte[])massiv).length; ++i)
    				if(((byte[])massiv)[i]==(byte)element)
    					return i;
    		} else if(massiv instanceof boolean[]) {
    			for(int i=0; i<((boolean[])massiv).length; ++i)
    				if(((boolean[])massiv)[i]==(boolean)element)
    					return i;
    		} else if(massiv instanceof char[]) {
    			for(int i=0; i<((char[])massiv).length; ++i)
    				if(((char[])massiv)[i]==(char)element)
    					return i;
    		} else if(massiv instanceof float[]) {
    			for(int i=0; i<((float[])massiv).length; ++i)
    				if(((float[])massiv)[i]==(float)element)
    					return i;
    		} else if(massiv instanceof double[]) {
    			for(int i=0; i<((double[])massiv).length; ++i)
    				if(((double[])massiv)[i]==(double)element)
    					return i;
    		} else if(massiv instanceof short[]) {
    			for(int i=0; i<((short[])massiv).length; ++i)
    				if(((short[])massiv)[i]==(short)element)
    					return i;
    		} else if(massiv instanceof long[]) {
    			for(int i=0; i<((long[])massiv).length; ++i)
    				if(((long[])massiv)[i]==(long)element)
    					return i;
    		} else {
    			try {
    				for(int i=0; i<((Object[])massiv).length; ++i)
    					if(sravnitMassivi(((Object[])massiv)[i],element))
    						return i;
    			} catch (Exception e) {
    				for(int i=0; i<((Object[])massiv).length; ++i)
    					if((((Object[])massiv)[i]).equals(element))
    						return i;
    			}
    		}
    		
    		return -1;
    	}
    	
    	
    	static boolean sravnitMassivi(Object massiv1,Object massiv2) {
    		try {
    			if((((Object[])massiv1)).length!=(((Object[])massiv2)).length) return false;
    			boolean ravni=true;
    			for(int i=0; i<(((Object[])massiv1)).length; ++i) 
    				ravni=ravni&&sravnitMassivi((((Object[])massiv1))[i],(((Object[])massiv2))[i]);
    			return ravni;
    		} catch (Exception e) {
    			if(massiv1 instanceof int[]) {
    				return Arrays.equals((int[])massiv1,(int[])massiv2);
    			} else if(massiv1 instanceof byte[]) {
    				return Arrays.equals((byte[])massiv1,(byte[])massiv2);
    			} else if(massiv1 instanceof boolean[]) {
    				return Arrays.equals((boolean[])massiv1,(boolean[])massiv2);
    			} else if(massiv1 instanceof char[]) {
    				return Arrays.equals((char[])massiv1,(char[])massiv2);
    			} else if(massiv1 instanceof float[]) {
    				return Arrays.equals((float[])massiv1,(float[])massiv2);
    			} else if(massiv1 instanceof double[]) {
    				return Arrays.equals((double[])massiv1,(double[])massiv2);
    			} else if(massiv1 instanceof short[]) {
    				return Arrays.equals((short[])massiv1,(short[])massiv2);
    			} else if(massiv1 instanceof long[]) {
    				return Arrays.equals((long[])massiv1,(long[])massiv2);
    			} else {
    				return massiv1.equals(massiv2);
    			}
    		}
    	}

    поиск элемента в массиве
    http://ideone.com/iqNA7l

    GovnoGovno, 03 Апреля 2014

    Комментарии (17)
  3. Java / Говнокод #15657

    +73

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    private void CopyFiles(String dirName) {
    	InputStream is = this.getClass().getResourceAsStream(
    			"/18.xslt");
    	OutputStream os;
    	try {
    		os = new FileOutputStream(dirName + "/18.xslt");
    		byte[] buffer = new byte[4096];
    		int length;
    		while ((length = is.read(buffer)) > 0) {
    			os.write(buffer, 0, length);
    		}
    		os.close();
    		is.close();
    		is = this.getClass().getResourceAsStream(
    				"/13_02.tif");
    		os = new FileOutputStream(dirName + "/13_02.tif");
    		while ((length = is.read(buffer)) > 0) {
    			os.write(buffer, 0, length);
    		}
    		os.close();
    		is.close();
    		is = this.getClass().getResourceAsStream("/13_02.xslt");
    		os = new FileOutputStream(dirName + "/13_02.xslt");
    		while ((length = is.read(buffer)) > 0) {
    			os.write(buffer, 0, length);
    		}
    		os.close();
    		is.close();
    		is = this.getClass().getResourceAsStream(
    				"/13_02_t.tif");
    		os = new FileOutputStream(dirName + "/13_02_t.tif");
    		while ((length = is.read(buffer)) > 0) {
    			os.write(buffer, 0, length);
    		}
    		os.close();
    		is.close();
    		is = this.getClass().getResourceAsStream(
    				"/13_02_t.xslt");
    		os = new FileOutputStream(dirName + "/13_02_t.xslt");
    		while ((length = is.read(buffer)) > 0) {
    			os.write(buffer, 0, length);
    		}
    		os.close();
    		is.close();
    	} catch (FileNotFoundException e1) {
    		e1.printStackTrace();
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    }

    evg_ever, 03 Апреля 2014

    Комментарии (16)
  4. Java / Говнокод #15654

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    private static class MyStatefulActor extends DefaultActor {
          protected void act() {
            loop(new Runnable() {
              public void run() {
                react(new MessagingRunnable<String>(this) {
                  protected void doRun(final String msg) {
                    System.out.println("Stage #0: " + msg);
                    react(new MessagingRunnable<Double>() {
                      protected void doRun(final Double msg) {
                        System.out.println("  Stage #1: " + msg);
                        react(new MessagingRunnable<List<Integer>>() {
                          protected void doRun(final List<Integer> msg) {
                            System.out.println("    Stage #2: " + msg + "\n");
                          }
                      });
                    }
                  });
                }
              });
            }
          });
        }
      }
    }

    laMer007, 03 Апреля 2014

    Комментарии (9)
  5. Java / Говнокод #15650

    +78

    1. 1
    2. 2
    3. 3
    wb.getApplication().run(macro, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
            null, null, null, null);

    Использование библиотеки для взаимодействия с мелкософтовскими COM-объектами

    evg_ever, 02 Апреля 2014

    Комментарии (142)
  6. Java / Говнокод #15629

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    OutputStream stream = openOutputStream();
    Throwable mainThrowable = null;
    
    try {
        // что-то делаем со stream
    } catch (Throwable t) {
        // сохраняем исключение
        mainThrowable = t;
        // и тут же выбрасываем его
        throw t;
    } finally {
         if (mainThrowable == null) {
             // основного исключения не было. Просто вызываем close()
             stream.close();
         }
         else {
             try {
                stream.close();
             } catch (Throwable unused) {
                 // игнорируем, так как есть основное исключение
                 // можно добавить лог исключения (по желанию)
             }
         }
    }

    КВА КВА ГЦ РЕШАЕТ ВСЕ ПРОБЛЕМЫ
    АВТОДЕСТРУКТОРЫ ЧТО ЭТО ТАКОЕ
    http://habrahabr.ru/post/178405/

    TarasB, 31 Марта 2014

    Комментарии (86)
  7. Java / Говнокод #15624

    +69

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public void startApp() {
            StringItem si = new StringItem("Some label","Some text");
            try{
                Image img = Image.createImage("/res/path/to/image.gif");
                FORM.append(img);
            }catch (java.io.IOException ioe){
                ioe.printStackTrace();
            }
            FORM.append(si);
            DISPLAY.setCurrent(FORM);
        }

    Wtf?
    http://www.gfs-team.ru/articles/read/107

    gost, 31 Марта 2014

    Комментарии (1)
  8. Java / Говнокод #15612

    +65

    1. 1
    grade : 100 >= "A" >= 90 > "B" >= 80 > "C" >= 70 > "D" >= 60 > "E" >= 0;

    Кто-нибудь догадается, что сие может значить? :)

    parzh, 28 Марта 2014

    Комментарии (33)
  9. Java / Говнокод #15581

    +74

    1. 1
    2. 2
    3. 3
    Logger.getLogger(OriginReaderImpl.class).error("somebody calls reading origins without filtering",
        new RuntimeException());
    return Cf.newArrayList();

    У меня был когнитивный диссонанс: в логах стектрейсы, а транзакция успешно завершена.

    П.С. Код переформатирован так, чтобы вызов конструктора исключения не вылезал за границы экрана.

    roman-kashitsyn, 26 Марта 2014

    Комментарии (5)
  10. Java / Говнокод #15570

    +119

    1. 1
    2. 2
    3. 3
    public static RuntimeException propagate(Throwable throwable)
    
    This method always throws an exception. The RuntimeException return type is only for client code to make Java type system happy in case a return value is required by the enclosing method.

    Давно пора сделать аннотацию типа noreturn, чтобы компилятор не ругался и подсвечивал мёртвый код.

    someone, 25 Марта 2014

    Комментарии (34)