- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
//javax.swing.JTree
public void setBounds(Rectangle r) {
AccessibleContext ac = getCurrentAccessibleContext();
if (ac instanceof AccessibleComponent) {
((AccessibleComponent) ac).setBounds(r);
} else {
Component c = getCurrentComponent();
if (c != null) {
c.setBounds(r);
}
}
}
public void setSize (Dimension d) {
AccessibleContext ac = getCurrentAccessibleContext();
if (ac instanceof AccessibleComponent) {
((AccessibleComponent) ac).setSize(d);
} else {
Component c = getCurrentComponent();
if (c != null) {
c.setSize(d);
}
}
}
public void requestFocus() {
AccessibleContext ac = getCurrentAccessibleContext();
if (ac instanceof AccessibleComponent) {
((AccessibleComponent) ac).requestFocus();
} else {
Component c = getCurrentComponent();
if (c != null) {
c.requestFocus();
}
}
}
public void addFocusListener(FocusListener l) {
AccessibleContext ac = getCurrentAccessibleContext();
if (ac instanceof AccessibleComponent) {
((AccessibleComponent) ac).addFocusListener(l);
} else {
Component c = getCurrentComponent();
if (c != null) {
c.addFocusListener(l);
}
}
}
public boolean isFocusTraversable() {
AccessibleContext ac = getCurrentAccessibleContext();
if (ac instanceof AccessibleComponent) {
return ((AccessibleComponent) ac).isFocusTraversable();
} else {
Component c = getCurrentComponent();
if (c != null) {
return c.isFocusTraversable();
} else {
return false;
}
}
}
Lure Of Chaos 10.10.2011 15:44 # +1
roman-kashitsyn 10.10.2011 15:45 # +1
roman-kashitsyn 10.10.2011 15:55 # 0
Lure Of Chaos 10.10.2011 18:19 # +1
gegMOPO4 10.10.2011 20:51 # 0
roman-kashitsyn 10.10.2011 22:46 # 0
3.14159265 11.10.2011 12:42 # 0
вот еще пример - InputStream и OutputStream implements Closeable
А java.sql.Connection, java.sql.Statement и java.sql.ResultSet не реализуют этого интерфейса.
Говорят в 7-ой жабе это пофиксили, но сколько ж лет оно так криво было.
roman-kashitsyn 11.10.2011 12:49 # 0
Дурно пахнущий код, который ещё и непонятно как рефакторить - явный признак ошибки на уровне архитектуры.
3.14159265 11.10.2011 13:41 # 0
Тут это слишком накладно м наверняка им стоило завести какой-то общий интерфейс.
>>> A Component is an object having a graphical representation that can be displayed on the screen
>>> The AccessibleComponent interface should be supported by any object that is rendered on the screen.
>>>should be supported by any object that is rendered on the screen.
>>>any object that is rendered on the screen
Потому что тут явно у кого-то проблемы с логикой.
roman-kashitsyn 11.10.2011 13:44 # 0
gegMOPO4 11.10.2011 18:50 # +1
roman-kashitsyn 11.10.2011 22:15 # +1
Lure Of Chaos 11.10.2011 22:40 # 0
gegMOPO4 12.10.2011 10:10 # 0
roman-kashitsyn 11.10.2011 13:59 # +2
SmackMyBitchUp 11.10.2011 14:19 # +1
3.14159265 11.10.2011 14:39 # 0
Кстати схожие ощущения.
И по скорости исполнения тоже неплохо так смотрится. В отличии от Groovy.
roman-kashitsyn 11.10.2011 14:46 # 0
Почти дочитал Programming in Scala, пока в восторге. Реально сокращает число букв, которые нужно набирать. Плюс есть полная обратная совместимость с Java. Единственный ощутимый косяк - нет пока нормальной IDE (язык настолько мощный, что я понимаю, почему её сложно сделать). Говорят, для IntelliJ IDEA есть нормальный плагин, но я его пока не пробовал. Поскольку пишу пока только игрушечный код, мне вполне хватает emacs + scala interpreter + maven.
roman-kashitsyn 11.10.2011 15:09 # 0
SmackMyBitchUp 11.10.2011 14:48 # 0
Uhehesh 11.10.2011 14:49 # 0
roman-kashitsyn 11.10.2011 14:54 # 0
3.14159265 11.10.2011 15:13 # 0
SmackMyBitchUp 11.10.2011 15:27 # 0
roman-kashitsyn 11.10.2011 15:39 # 0
http://stackoverflow.com/questions/419207/which-is-the-best-ide-for-scala-development
carsten 12.10.2011 05:50 # 0
gegMOPO4 11.10.2011 18:41 # 0
roman-kashitsyn 11.10.2011 23:12 # +1
carsten 12.10.2011 05:54 # +1
gegMOPO4 12.10.2011 10:13 # 0
3.14159265 12.10.2011 17:51 # 0
Никак нет, сер. Там очень много классов с методом close.
RMIConnection, например.
public void close() throws IOException; а интерфейс не имплементит
>А зачем?
Обычно пресловутый Exception игнорится и если хочется чего-то закрыть нужно писать
try{
close(something);
}catch(){}
А если нужно закрыть PreparedStatement, а за ним Connection, или 2 Connection подряд приходится новое закрытие снова оборачивать в try-catch. По понятным причинам.
А если оно все имплементит Closable делаем метод
static void close(Closable cl){
try{cl.close}catch(Exception e){};
}
или даже так
static void close(Closable... cl){
gegMOPO4 12.10.2011 18:40 # 0
roman-kashitsyn 12.10.2011 18:45 # 0
3.14159265 12.10.2011 19:38 # 0
Да и вообще речь о том, что если уж вводить новый интерфейс с методом
>close is invoked to release resources that the object is holding.
то стоит сделать его универсальным.
gegMOPO4 12.10.2011 19:56 # 0
Кстати, Closeable ведь только с 1.5. Вот и ответ на вопрос.
carsten 14.10.2011 01:14 # 0
Да в большинстве случаев этот "надёжный код" просто выводит сообщение и закрывает программу. В принципе абсолютно то же самое происходит при стандартное поведении системы при непойманном исключении, только вот весёлый Гослинг заставляет нас писать больше букав просто так.
Если уж и заботиться о суперкритичном софте (типа софта для бирж), то можно было бы сделать свитч компилятора XX:+critical, который бы не компилировал код при непойманных исключениях, и XX:-critical, который бы просто выводил ворнинг. Выбирай нужный свитч под тип приложения.
roman-kashitsyn 12.10.2011 19:48 # +1
Lure Of Chaos 13.10.2011 15:24 # 0
кстати, Ховард негодует тоже:
roman-kashitsyn 13.10.2011 18:50 # 0
Lure Of Chaos 13.10.2011 18:53 # 0
даже если он не знает, какие именно
carsten 14.10.2011 01:20 # +1
Как я уже сказал, можно было просто выводить ворнинг, а не вообще отказываться компилировать. Хорошие программисты обратят внимание на ворнинг, а плохие будут делать путые try...catch...finally в любом случае и при checked exceptions, ровно как и игнорировать ворнинги. Так что толка нет никакого.
carsten 14.10.2011 01:21 # 0
Lure Of Chaos 14.10.2011 11:31 # 0
guest8 09.04.2019 11:42 # −999