Size: a a a

2020 September 06

NK

Nikita Krutko in learn.java
Привет, я пытаюсь понять, где я ошибся, если обобщить, то выглядит вот так

У меня есть интерфейс
interface A<T> {
 static <T> T from(byte[] data) {
   return null;
 }
}


Есть класс, в котором есть реализация того же статического метода
class B implements A<B> { ... }


И есть статический метод
static <T extends A<T>> T bytesToObject(byte[] data) {
 return T.from(data);
}


Но мне отображает ошибку, что у T не существует такого метода, где я ошибся?
источник

ch

central hardware in learn.java
Nikita Krutko
Привет, я пытаюсь понять, где я ошибся, если обобщить, то выглядит вот так

У меня есть интерфейс
interface A<T> {
 static <T> T from(byte[] data) {
   return null;
 }
}


Есть класс, в котором есть реализация того же статического метода
class B implements A<B> { ... }


И есть статический метод
static <T extends A<T>> T bytesToObject(byte[] data) {
 return T.from(data);
}


Но мне отображает ошибку, что у T не существует такого метода, где я ошибся?
а статичные методы вообще наследуются?
источник

NK

Nikita Krutko in learn.java
central hardware
а статичные методы вообще наследуются?
источник

NK

Nikita Krutko in learn.java
Nikita Krutko
Привет, я пытаюсь понять, где я ошибся, если обобщить, то выглядит вот так

У меня есть интерфейс
interface A<T> {
 static <T> T from(byte[] data) {
   return null;
 }
}


Есть класс, в котором есть реализация того же статического метода
class B implements A<B> { ... }


И есть статический метод
static <T extends A<T>> T bytesToObject(byte[] data) {
 return T.from(data);
}


Но мне отображает ошибку, что у T не существует такого метода, где я ошибся?
Так, оно скомпилировалось, просто jdtls не справился с анализом(((
источник

ch

central hardware in learn.java
нужно произвести манипуляции с полем раз в год, как это лучше сделать spring boot + data?
источник

АБ

Артём Бояршинов... in learn.java
central hardware
нужно произвести манипуляции с полем раз в год, как это лучше сделать spring boot + data?
Можно использовать периодическую таску. Погуглите аннотацию @Scheduled
источник

R

Rus in learn.java
Привет всем! вопрос такой что нужно ли помещать в autoclose preparestatement и restultSet если основной Connection уже помещен в него?
источник

R

Rus in learn.java
моя логика такова что при закрытии Connection за счет которого работают другие закроются автоматом и они?
источник

R

Rus in learn.java
try (Connection con = ConnectionPool.getConnection()) {
           StringBuilder sql = new StringBuilder();
           ResultSet res1 = con.prepareStatement(sql.toString()).executeQuery();
           while (res1.next()) {
               
           }
       } catch (SQLException throwables) {
           Log.writeLog(throwables);
       }
источник

ch

central hardware in learn.java
Rus
моя логика такова что при закрытии Connection за счет которого работают другие закроются автоматом и они?
посмотрите код close из Connection и будет ясно
источник

A

Anton in learn.java
Rus
моя логика такова что при закрытии Connection за счет которого работают другие закроются автоматом и они?
источник

R

Rus in learn.java
И еще один ворпос что лучше?
try (Connection con = ConnectionPool.getConnection()) {
           StringBuilder sql = new StringBuilder();
           try (ResultSet res1 = con.prepareStatement(sql.toString()).executeQuery()) {
               while (res1.next()) {
               }
           }

           StringBuilder sql = new StringBuilder();
           try (ResultSet res1 = con.prepareStatement(sql.toString()).executeQuery()) {
               while (res1.next()) {
               }
           }
       } catch (SQLException throwables) {
       }
Или
try (Connection con = ConnectionPool.getConnection();
           Statement st = con.createStatement()) {
           StringBuilder sql = new StringBuilder();
           try (ResultSet res1 = st.executeQuery(sql.toString())) {
               while (res1.next()) {
               }
           }

           StringBuilder sql2 = new StringBuilder();
           try (ResultSet res2 = st.executeQuery(sql2.toString())) {
               while (res2.next()) {
               }
           }
       } catch (SQLException throwables) {
       }
То есть что лучше создать один statement или каждый раз создавать prepareStatement?
источник

F

Farid in learn.java
Rus
И еще один ворпос что лучше?
try (Connection con = ConnectionPool.getConnection()) {
           StringBuilder sql = new StringBuilder();
           try (ResultSet res1 = con.prepareStatement(sql.toString()).executeQuery()) {
               while (res1.next()) {
               }
           }

           StringBuilder sql = new StringBuilder();
           try (ResultSet res1 = con.prepareStatement(sql.toString()).executeQuery()) {
               while (res1.next()) {
               }
           }
       } catch (SQLException throwables) {
       }
Или
try (Connection con = ConnectionPool.getConnection();
           Statement st = con.createStatement()) {
           StringBuilder sql = new StringBuilder();
           try (ResultSet res1 = st.executeQuery(sql.toString())) {
               while (res1.next()) {
               }
           }

           StringBuilder sql2 = new StringBuilder();
           try (ResultSet res2 = st.executeQuery(sql2.toString())) {
               while (res2.next()) {
               }
           }
       } catch (SQLException throwables) {
       }
То есть что лучше создать один statement или каждый раз создавать prepareStatement?
вы понимаете различия statement и prepareStatement? т.к. второе вы используйте не так, как обычно используют
источник

Э

Эд in learn.java
Rus
И еще один ворпос что лучше?
try (Connection con = ConnectionPool.getConnection()) {
           StringBuilder sql = new StringBuilder();
           try (ResultSet res1 = con.prepareStatement(sql.toString()).executeQuery()) {
               while (res1.next()) {
               }
           }

           StringBuilder sql = new StringBuilder();
           try (ResultSet res1 = con.prepareStatement(sql.toString()).executeQuery()) {
               while (res1.next()) {
               }
           }
       } catch (SQLException throwables) {
       }
Или
try (Connection con = ConnectionPool.getConnection();
           Statement st = con.createStatement()) {
           StringBuilder sql = new StringBuilder();
           try (ResultSet res1 = st.executeQuery(sql.toString())) {
               while (res1.next()) {
               }
           }

           StringBuilder sql2 = new StringBuilder();
           try (ResultSet res2 = st.executeQuery(sql2.toString())) {
               while (res2.next()) {
               }
           }
       } catch (SQLException throwables) {
       }
То есть что лучше создать один statement или каждый раз создавать prepareStatement?
лучше Spring JdbcTemplate)
источник

R

Rus in learn.java
Farid
вы понимаете различия statement и prepareStatement? т.к. второе вы используйте не так, как обычно используют
читал что prepareStatement это улучшенная версия statement и он быстрее.
источник

F

Farid in learn.java
Rus
читал что prepareStatement это улучшенная версия statement и он быстрее.
источник

R

Rus in learn.java
ну так отличий я не увидел
источник

R

Rus in learn.java
единственное что доп параметры если только
источник

R

Rus in learn.java
источник

R

Rus in learn.java
здесь вот написали про преимущества перед statement
источник