jam2in / arcus-java-client

Arcus Java client
Apache License 2.0
0 stars 0 forks source link

Boxing 타입 생성자 대신 valueOf 메서드 사용 #44

Closed junghoon-vans closed 1 year ago

junghoon-vans commented 1 year ago

설명

Boxing 타입은 Java 9 이후로 new 생성자를 이용하는 것이 deprecated 되었습니다. 최신 버전의 Java와의 호환성을 위해 valueOf 메서드를 활용하는 편이 것이 좋을 것 같습니다.

에러로그

[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/SerializingTranscoder.java:[86,16] Integer(int) in java.lang.Integer has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/SerializingTranscoder.java:[89,16] Long(long) in java.lang.Long has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/SerializingTranscoder.java:[95,16] Byte(byte) in java.lang.Byte has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/SerializingTranscoder.java:[98,16] Float(float) in java.lang.Float has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/SerializingTranscoder.java:[101,16] Double(double) in java.lang.Double has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/ArcusClient.java:[1751,22] Integer(java.lang.String) in java.lang.Integer has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/ArcusClient.java:[4437,24] Long(java.lang.String) in java.lang.Long has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/CollectionTranscoder.java:[89,16] Integer(int) in java.lang.Integer has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/CollectionTranscoder.java:[92,16] Long(long) in java.lang.Long has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/CollectionTranscoder.java:[98,16] Byte(byte) in java.lang.Byte has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/CollectionTranscoder.java:[101,16] Float(float) in java.lang.Float has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/CollectionTranscoder.java:[104,16] Double(double) in java.lang.Double has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/WhalinTranscoder.java:[66,16] Integer(int) in java.lang.Integer has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/WhalinTranscoder.java:[69,16] Short(short) in java.lang.Short has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/WhalinTranscoder.java:[72,16] Long(long) in java.lang.Long has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/WhalinTranscoder.java:[78,16] Byte(byte) in java.lang.Byte has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/WhalinTranscoder.java:[81,16] Float(float) in java.lang.Float has been deprecated and marked for removal
[WARNING] /Users/jam2in/workspace/arcus-java-client/src/main/java/net/spy/memcached/transcoders/WhalinTranscoder.java:[84,16] Double(double) in java.lang.Double has been deprecated and marked for removal

Java 17 버전 기준으로 컴파일하는 경우 위와 같은 WARNING이 발생

변경사항

아래 코드는 net.spy.memcached.transcoders.SerializingTranscoder의 decode 메서드입니다.

AS-IS

public Object decode(CachedData d) {
  // ...
  case SPECIAL_INT:
    rv = new Integer(tu.decodeInt(data));
    break;
  case SPECIAL_LONG:
    rv = new Long(tu.decodeLong(data));
    break;
  // ...
}

TO-BE

public Object decode(CachedData d) {
  // ...
  case SPECIAL_INT:
    rv = Integer.valueOf(tu.decodeInt(data));
    break;
  case SPECIAL_LONG:
    rv = Long.valueOf(tu.decodeLong(data));
    break;
  // ...
}

추가사항

Spring Data Arcus의 자바 버전을 17로 설정하기 위해서는 ARCUS Java Client 또한 17 버전의 컴파일을 지원해야 합니다. 해당 문제 이외에 자바 17버전 컴파일러에서 발생하는 WARNING이 없는 것으로 보아, 해당 이슈만 해결된다면 호환성 문제는 없을 것 같습니다.

jhpark816 commented 1 year ago

@junghoon-vans 본 이슈를 https://github.com/naver/arcus-java-client 에 올려주시고, close해 주세요.

junghoon-vans commented 1 year ago

@jhpark816 네, 이슈 등록하고 close 했습니다. https://github.com/naver/arcus-java-client/issues/668